2016-05-13 68 views
0

我正在开发一个应用程序来测验我的xml我有一个问题,4个选项(选项是textviews)和上一个和下一个按钮。我做了上一个和下一个按钮。但我面临着选择方面的问题。当我单击或选择一个问题的选项时,所有问题选项也会选择。如何控制这种行为?请任何人帮忙怎么做?所有的文本视图都选择当一个文本视图选择通过点击监听器在Android?

if (v == rb1) { 
     Toast.makeText(getApplicationContext(), rb1.getText().toString(), Toast.LENGTH_SHORT).show(); 
     // quelay.setVisibility(View.INVISIBLE); 
     // answer.setVisibility(View.VISIBLE); 
     db.updateContact(question.getText().toString()); 
     setNext(); 
    if (v == rb2) { 
     Toast.makeText(getApplicationContext(), rb1.getText().toString(), Toast.LENGTH_SHORT).show(); 
     // quelay.setVisibility(View.INVISIBLE); 
     // answer.setVisibility(View.VISIBLE); 
     db.updateContact(question.getText().toString()); 
     setNext(); 

回答

0

你可以试试这个。

private View.OnClickListener mCorkyListener = new View.OnClickListener() { 
     public void onClick(View v) { 
      // do something when the button is clicked 
      // Yes we will handle click here but which button clicked??? We don't know 

      // So we will make 
      switch (v.getId() /*to get clicked view id**/) { 
       case R.id.rb1: 

        Toast.makeText(getApplicationContext(), rb1.getText().toString(), Toast.LENGTH_SHORT).show(); 
        //quelay.setVisibility(View.INVISIBLE); 
        //answer.setVisibility(View.VISIBLE); 
        db.updateContact(question.getText().toString()); 
        setNext(); 

        break; 
       case R.id.rb2: 

        Toast.makeText(getApplicationContext(), rb2.getText().toString(), Toast.LENGTH_SHORT).show(); 
        //quelay.setVisibility(View.INVISIBLE); 
        //answer.setVisibility(View.VISIBLE); 
        db.updateContact(question.getText().toString()); 
        setNext(); 

        break; 
       case R.id.rb3: 

        Toast.makeText(getApplicationContext(), rb3.getText().toString(), Toast.LENGTH_SHORT).show(); 
        //quelay.setVisibility(View.INVISIBLE); 
        //answer.setVisibility(View.VISIBLE); 
        db.updateContact(question.getText().toString()); 
        setNext(); 

        break; 

       case R.id.rb4: 

        Toast.makeText(getApplicationContext(), rb4.getText().toString(), Toast.LENGTH_SHORT).show(); 
        //quelay.setVisibility(View.INVISIBLE); 
        //answer.setVisibility(View.VISIBLE); 
        db.updateContact(question.getText().toString()); 
        setNext(); 

        break; 
       default: 
        break; 
      } 
     } 
    }; 
0

试试这个,

if (v == rb1) { 
    Toast.makeText(getApplicationContext(), rb1.getText().toString(), Toast.LENGTH_SHORT).show(); 
    db.updateContact(question.getText().toString()); 
    setNext(); 
if (v == rb2) { 
    Toast.makeText(getApplicationContext(), rb2.getText().toString(), Toast.LENGTH_SHORT).show(); 

    db.updateContact(question.getText().toString()); 
    setNext(); 

您展示rb1.getText()。在这两个conditons的toString()。所以改变你的第二个条件部分,

if (v == rb2) 
Toast.makeText(getApplicationContext(), rb2.getText().toString(), Toast.LENGTH_SHORT).show(); 
相关问题