按钮。PerformClick()不';如果按钮在Android中不可见,则不会触发Click事件
我希望我的按钮。PerformClick()不';如果按钮在Android中不可见,则不会触发Click事件,android,button,onclicklistener,Android,Button,Onclicklistener,我希望我的btnAppShare按钮被单击,即使该按钮不可见,我已经在按钮1单击可见的侦听器之后编写了此代码。基本上,我希望在完全执行按钮1的setOnClickListener事件后,自动单击我的按钮2并执行其`setOnClickListener' btnAppShare = (Button) findViewById(R.id.btnAppShare); btnAppShare.setVisibility(View.INVISIBLE); btnAppShare.perf
btnAppShare
按钮被单击,即使该按钮不可见,我已经在按钮1单击可见的侦听器之后编写了此代码。基本上,我希望在完全执行按钮1的setOnClickListener
事件后,自动单击我的按钮2并执行其`setOnClickListener'
btnAppShare = (Button) findViewById(R.id.btnAppShare);
btnAppShare.setVisibility(View.INVISIBLE);
btnAppShare.performClick();
btnAppShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if (TextUtils.isEmpty(regId)) {
Toast.makeText(getApplicationContext(), "RegId is empty!",
Toast.LENGTH_LONG).show();
} else {
Intent i = new Intent(getApplicationContext(),
MainActivity.class);
i.putExtra("regId", regId);
startActivity(i);
finish();
}
}
});
您不能单击不可见的内容,但可以做的是使按钮背景在其xml中具有此属性时透明
android:background="@android:color/transparent"
此按钮不可见,但可单击
希望它能帮助您使用View\callOnClick()
:
与
performClick()
不同,它直接调用onClickListener方法,而不调用与视图相关的内容。在调用单击操作之前,按钮必须有侦听器 创建一个方法并在设置按钮不可见后调用该方法,然后在侦听器的onClick
方法中调用相同的方法
btnAppShare = (Button) findViewById(R.id.btnAppShare);
btnAppShare.setVisibility(View.INVISIBLE);
myMethod();
btnAppShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0)
myMethod();
}
});
public void myMethod()
{
if (TextUtils.isEmpty(regId)) {
Toast.makeText(getApplicationContext(), "RegId is empty!",
Toast.LENGTH_LONG).show();
} else {
Intent i = new Intent(getApplicationContext(),
MainActivity.class);
i.putExtra("regId", regId);
startActivity(i);
finish();
}
}
Button#performClick()
@3mpty的行为是正确的,那么执行setOnClickListener of invisible Button在另一个方法中输入onClick()
中的所有内容,并从onClick()
调用该方法,无论您在哪里尝试调用performClick()
。为这些对象编写外部方法不是更有意义吗?这样,按钮1的onClick方法只调用类似“method1()”的方法,而按钮2的onClick方法调用两个方法“method2()”和“method1()”?只是想指出,您还必须更改文本颜色。这看起来很混乱,因为用户仍然可以单击按钮,而他想要的似乎是一个按钮执行功能X,而另一个按钮则执行功能YX@jace你说得有道理,但我没有说,因为如果他设置的按钮已经不可见,那么这意味着按钮没有文本供用户阅读,用户尚未从按钮中读取任何内容,因此按钮不应包含任何文本
btnAppShare = (Button) findViewById(R.id.btnAppShare);
btnAppShare.setVisibility(View.INVISIBLE);
myMethod();
btnAppShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0)
myMethod();
}
});
public void myMethod()
{
if (TextUtils.isEmpty(regId)) {
Toast.makeText(getApplicationContext(), "RegId is empty!",
Toast.LENGTH_LONG).show();
} else {
Intent i = new Intent(getApplicationContext(),
MainActivity.class);
i.putExtra("regId", regId);
startActivity(i);
finish();
}
}