-1

好吧,可以说我有一个应用程序,周围有 50-60 个按钮,我想处理其他包中的所有点击方法。我如何处理对包 app.test 的点击;包 app.test.clicks 中的第一类点击次数?

4

3 回答 3

2

创建一个实现 OnClickListener 的类,

 public class ClickHandler implements OnClickListener

 {
     public void onClick(View v) {

    //This method will be automatically implemented once OnClickListener is implemented. 

     }

 }

现在像这样将 onClickistener 设置为您的按钮。

button.setOnClickListener(new ClickHandler());

现在在 onClick() 里面做这个,

 public void onClick(View v) {

        if(v.getId()==R.id.button)
            {
                //your stuff here. 
            } 

    }

如果您需要上下文对象,请尝试v.getContext();。"v" 是 onClick() 的参数形式。

确保将 ClickHandler 类的包名导入到 Activity 中。

但是,如果您将其作为每个 Activity 的内部类,那就更好了。

于 2012-12-13T07:10:15.290 回答
1
public class HeaderActivity extends Activity implements OnClickListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ((Button)findViewById(R.id.home)).setOnClickListener(this);
    ((Button)findViewById(R.id.search)).setOnClickListener(this);
    ((Button)findViewById(R.id.list)).setOnClickListener(this);
    ((Button)findViewById(R.id.filter)).setOnClickListener(this);

}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(v.getId()){
    case R.id.home:

        Intent home=new Intent(this,HomeScreen.class);
        startActivity(home);
        finish();

        break;
    case R.id.search:
        Intent search=new Intent(this,SearchScreen.class);
        startActivity(search);
        finish();
        break;

    case R.id.list:
        Intent list=new Intent(this,ListScreen.class);
        startActivity(list);
        finish();
        break;

    case R.id.filter:
        Intent filter=new Intent(this,FilterScreen.class);
        startActivity(filter);
        finish();
        break;

    default :  break;   

    }
}
于 2012-12-13T07:14:30.063 回答
0

好吧,我认为实施这不是一个好主意。但是,您需要将Context传递给 clicks 类。从上下文对象中,您将能够访问已单击的控件,并且您可以相应地编写逻辑。

于 2012-12-13T07:08:13.337 回答