即使按钮不可见,我也希望点击btnAppShare
按钮,我在按钮1单击可见的监听器后编写了此代码。基本上,我希望在完成按钮1的setOnClickListener
事件后,我会自动点击button2并执行其`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();
}
}
});
答案 0 :(得分:6)
使用View#callOnClick()
:
Button b = (Button)findViewById(R.id.button);
//set here listener
b.callOnClick();
与performClick()
不同,它直接调用onClickListener方法,没有与视图相关的东西。在调用点击操作之前,按钮必须有监听器!
答案 1 :(得分:1)
创建一个方法,并在设置隐藏按钮后调用它,然后在侦听器的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();
}
}
答案 2 :(得分:0)
您无法点击不可见的内容但您可以执行的操作是使该按钮背景在其xml中使用此属性透明
android:background="@android:color/transparent"
这种方式按钮不可见但可点击。
希望有所帮助
答案 3 :(得分:-1)
如果你愿意
view.performClick()
类似的东西,你应该在 performclick 方法上面写你的 setOnclick 方法。因为代码是从上往下流的,按钮调用前要先生成setOnclick方法。