我在android中有小查询。 我有一个活动,它有3个按钮,在一个按钮上单击我显示AlertDialog框,在第二个按钮单击我显示列表对话框和在第三个按钮单击我切换Android中的OnScreen键板。
我的问题是我能够调用第一个按钮,当我点击第二个和第三个按钮时它们没有响应,而且我通过在相应的单击事件功能上插入断点来检查,控制流程根本没有在功能内部。简单的是,它会跳过乐趣并进入主OnCreate函数的末尾。
这是我用于前2个按钮的代码......
Button btn=(Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
ShowListDialog();
}
});
btn=(Button) findViewById(R.id.btnShowList);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ShowOneDialog();
}
});
我正在调用函数ShowOneDialog()和ShowListDialog()函数,希望不需要函数 对于第三个按钮点击事件如下...
btn =(Button)findViewById(R.id.btnToggle); btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
InputMethodManager inmgr=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inmgr.toggleSoftInput(0, 0);
}
});
答案 0 :(得分:1)
创建一个单独的OnClickListener
并将此监听器添加到所有按钮:
Button btn=(Button) findViewById(R.id.button1);
Button btn1=(Button) findViewById(R.id.btnShowList);
....
btn.setOnClickListener(buttonclickhandler);
btn1.setOnClickListener(buttonclickhandler);
....
View.OnClickListener buttonclickhandler = new View.OnClickListener() {
public void onClick(View v) {
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.button1:ShowListDialog();
break;
case R.id.btnShowList: ShowOneDialog();
break;
}
}
}
}
答案 1 :(得分:0)
Button btn=(Button) findViewById(R.id.button1);
您已将btn设置为button1,因此您只将一个监听器附加到THAT按钮,这就是您的其他按钮没有执行任何操作的原因。
答案 2 :(得分:0)
试试这段代码
Button btn1=(Button)findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
ShowListDialog();
}
});
Button btn2 = (Button)findViewById(R.id.btnShowList);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ShowOneDialog();
}
});