【问题标题】:Android Identifying Multiple ButtonAndroid识别多个按钮
【发布时间】:2015-12-13 13:30:29
【问题描述】:

我的MainLayout.xml 中有多个100 button,我想处理每个点击。我想对所有按钮进行分组,然后听组按钮的单击,获取ID 并将其放入String,然后将其用作我的基本ID,以从我的Sqlite Databse Table 查询。我怎样才能做到这一点?到目前为止,我的 MainClass.java 上有这个。

MainClass.java

public class MainClass extends AppCompatActivity implements View.OnClickListener {
    Button B0,B1,B2,B3....;
    String baseId;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);

        buttonInitializer();
    }

     public void buttonInitializer(){
        B0 = (Button)findViewById(R.id.B0); B0.setOnClickListener(this);
        B1 = (Button)findViewById(R.id.B1); B1.setOnClickListener(this);
        ...
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.B0: 
                baseId = "B0";
                break;
            case R.id.B1: 
                baseId = "B1";
                break;
            ..........
            default:
                break;
        }
        QueryFire(); // Fire a query
    }

   Public void QueryFire(){
      //Fire the query with id of the clicked button
   }
}

如您所见,如果我继续这样做,我将有长代码,我想缩短我的代码,而不是上面的代码,我想对按钮进行分组,然后像 @987654328 一样收听每次点击@,但请注意。我不想使用 RadioButton。我正在尝试实现这个伪代码。

// Put the button into RelativeLayout or something and use it to group the button
// OnClick of Each Button inside the GroupButton:
   // Get the ID of the Clicked Button:
   // Put the ID of Button into String:
   // and FIRE my query with ID of Button

任何帮助将不胜感激!非常感谢!!!

【问题讨论】:

    标签: java android sqlite android-studio android-button


    【解决方案1】:

    您应该能够为 xml 布局中的每个按钮的“android:tag”属性以及“android:onclick”属性指定一个字符串。这应该消除对所有 findViewById() 和 setOnClickListener() 调用的需要。

    然后,在您的 onClick 方法中,您可以执行类似 baseId = (String) view.getTag() 的操作

    【讨论】:

      【解决方案2】:

      可能有点牵强,但为什么不使用带有自定义适配器的 ListView?每个适配器将持有一个按钮(或任何你想要的),每次点击按钮你都会得到 id(点击元素的位置)。它在内存上也更容易:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-20
        • 1970-01-01
        • 2021-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多