2012-10-22 44 views
0

我想从下面的Button onClick方法获得字符串firstChoicesecondChoice的值,并在同一个类中使用它。问题是我知道你不能从void方法返回一个String值。请看看我有什么:如何从android中的无效视图获取字符串值?

public class Question extends Activity implements OnClickListener{ 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_question); 

     Choice1 = (Button) findViewById(R.id.Choice4); 
     Choice1.setOnClickListener(Question.this); 

     Choice2 = (Button) findViewById(R.id.Choice5); 
     Choice2.setOnClickListener(Question.this); 

     firstChoice; 
     secondChoice; 

    public void onClick(View view) { 
      switch(view.getId()) { 
       case R.id.Choice4: 
        showSelectPicksDialog(); 
        Button b = (Button)view; 
       String firstChoice = b.getText().toString(); 

       break; 

       case R.id.Choice5: 
        showSelectPicksDialog2(); 
        Button v = (Button)view; 
       String secondChoice = v.getText().toString();// 
       break; 

       default: 
       break; 
      } 
      } 

有没有一种方法,我可以得到这些值?就像现在一样,当我尝试在Create方法中调用值时,我得到的错误是firstChoice和secondChoice“无法解析为类型”。

回答

0

的方法有很多,你可以使用一个类变量,例如:

public class Question extends Activity implements OnClickListener{ 
    String firstChoice;  
    String secondChoice;  
    Button choice1; 
    Button choice2; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_question); 

     choice1 = (Button) findViewById(R.id.Choice4); 
     choice1.setOnClickListener(Question.this); 

     choice2 = (Button) findViewById(R.id.Choice5); 
     choice2.setOnClickListener(Question.this); 

     public void onClick(View view) { 
      switch(view.getId()) { 
      case R.id.Choice4: 
       showSelectPicksDialog(); 
       Button b = (Button)view; 
       firstChoice = b.getText().toString(); 
       break; 

      case R.id.Choice5: 
       showSelectPicksDialog2(); 
       Button v = (Button)view; 
       secondChoice = v.getText().toString(); 
       break; 

      default: 
       break; 
      } 
     } 
    } 
} 
+0

感谢您的答复。我正在尝试这个。它应该得到firstChoice和secondChoice变量的值是否正确?即使公共无效onClick(视图视图)是无效的? – user875139

+0

是的,'firstChoice'和'secondChoice'没有被返回,所以'void'返回类型无关紧要。 – Sam

+0

谢谢山姆!我很感激。 – user875139

相关问题