【问题标题】:onClickListener on TableLayout表布局上的 onClickListener
【发布时间】:2011-09-28 12:50:06
【问题描述】:

我遇到了一些琐碎的问题,但我不知道如何解决它。我的 TableLayout 上有几个 ImageViews 我如何为所有这些创建一个 onClickListner。它应该是这样的:

    public void onClick(View v) {
    switch(v.getId())
    {
    case(R.id.imageStart):
    {
        this.startActivity(new Intent(MainActivity.this,GameActivity.class));
        break;
    }
    case(R.id.imageExit):
    {
        finish();
        break;
    }

    }

}

如果可能的话,我是 Android Dev 的新手。我看到了每个 ImageView 都有自己的 onClickListner 的示例,但我想这不是一个好习惯。谢谢。

【问题讨论】:

标签: android


【解决方案1】:

按照以下步骤:

public class MyActivity extends Activity implement OnClickListener{

@override
protected void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);

   //get the View  by Id
   ImageView img1 = (ImageView) findViewById(R.id.img1);
   ImageView img2 = (ImageView) findViewById(R.id.img2);
   ImageView img3 = (ImageView) findViewById(R.id.img3);

   //set the OnClickListener on your ImageViews
   img1.setOnClickListener(this);
   img2.setOnClickListener(this);
   img3.setOnClickListener(this);
}

@override
public void onClick(View v){
   switch(v.getId()){
       case(R.id.img1):
         Toast.makeText(this,"image 1 clicked ...",3000).show();
         break;
       case(R.id.img2):
         Toast.makeText(this,"image 2 clicked ...",3000).show();
         break;
       case(R.id.img3):
         Toast.makeText(this,"image 3 clicked ...",3000).show();
         break;
   }
}
}

【讨论】:

    【解决方案2】:

    是的,您可以这样做。只需在您的类中实现 OnClickListener:

    公共类 MainActivity 扩展 Activity 实现 OnClickListener {

    }

    将您的 onClick 方法添加到该类,然后您对每个按钮所要做的就是:

    button.setOnClickListener(this);

    【讨论】:

    • 如果这是唯一的方法,也许我们可以在 TableView 中收集元素并添加一次 onClickListner 或者我只是在做梦???
    • 我从来没有真正使用过表格,但也许有一个 onRowClickListener 或类似的东西?!或者,也许您可​​以使用 ListView 而不是 TableLayout。然后,您可以在适配器的 getView 中添加一个 onItemClickListener 或添加一个 clickListener。然后您只需添加一次,它将用于每一行。
    • 您将在您拥有的任何按钮上设置 onClickListener,然后实现方法 onClick() ,这样您就可以切换按钮的 id 以定义要执行的操作,我就是这样对不起我的英语不好:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多