2011-06-04 51 views
0

新的Android开发者在这里。我正在做一个表单,让用户在搜索SQLite数据库之前设置一些搜索条件。表单的一部分包含一些复选框。我如何从“最佳实践”的角度去看待他们的价值观?在android中获取多个复选框值?

我习惯做PHP,所以我会设置一个返回数组或对象所有值的方法,然后在'onClick'方法中调用它,但这在Java中也是一个好主意?

我的代码如下所示:

// Setup a listener, and event handler for the onClick event of the button 
    buttonFind.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // Perform action on click 
      String text = "Button clicked"; 
      int duration = Toast.LENGTH_SHORT; 
      Context context = getApplicationContext(); 

      Toast toast = Toast.makeText(context, text, duration); 
      toast.show(); 
     } 
    }); 
+0

你的代码似乎没有“调用”任何东西。 – trutheality 2011-06-04 22:14:09

回答

4

它可能会更好在你的问题透露更多的细节。你不会在你的代码中显示你的复选框的任何地方...所以我要做一些假设:

我假设在你的活动的onCreate()方法的某个地方,你有一些东西看起来是这样的:

CheckBox myCheckbox = (Checkbox) findViewById(R.id.my_checkbox); 

如果你想找出是否该复选框被从按钮的onClick()方法检查或没有(因为你张贴以上),你可以做这样的事情:

boolean isMyCheckboxChecked = myCheckbox.isChecked(); 

希望能为你解决。下一次尝试在你的问题中更清楚。

+0

对不起,我想我遗漏了我的代码的一些重要部分。我担心采取程序方法(即检查onClick方法本身的复选框),或者编写一个方法来检查复选框并以数组或对象的形式返回该数据,然后可以在onClick(即分组我的逻辑并使我的代码更具可读性)。所以我想这是一个最佳实践问题:) – 2011-06-05 00:07:32

+1

这没有什么“最佳做法”。它完全取决于你的应用程序。如果你有很多复选框,你可能想要有1个函数来处理它们的状态,并以你想要的格式返回你捆绑的值。 – wnafee 2011-06-05 00:31:19

+1

另一种方法是更新复选框状态,因为它们正在被选中/取消选中,而不是在最后单击按钮时进行(可能会使您的应用程序看起来更具响应性)。要做到这一点,只需设置你的OnCheckedChangeListener,并为你的所有复选框设置一个通用的。为了实现它,通过执行myView.getId()来确定问题的复选框,并创建一个'switch'语句来更新适当的数据结构,该结构保存您确定的复选框的所有复选框状态。 – wnafee 2011-06-05 00:37:47