2012-10-22 79 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

相關問題