2015-12-07 27 views
1

這裏與Android政治派別應用程序顯示的問題是我的應用程序的截圖圖片:我在使用單選按鈕

enter image description here

當我點擊我的「點擊我的按鈕」,我選擇參加六一政治派別,說「自由派」就會顯示「自由派」。我希望它做的是當我選擇「自由主義」時,我不希望它顯示「自由主義」一詞,我希望它顯示自由主義的定義,我稱之爲「自由主義描述」並將它保存在我的字符串中xml文件。

這是我使用Java在我的Android工作室MainActivity節寫道:

package myactivity.magadistudio.com.politicalaffiliationapp; 

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Button; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 

private Button showButton; 
private RadioGroup radioGroup; 
private TextView showChoiceTextView; 
private RadioButton radioChoiceButton; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

//set up TextView 

showChoiceTextView=(TextView)findViewById(R.id.showTextView); 

//set up RadioGroup 

radioGroup=(RadioGroup) findViewById(R.id.radioGroupId); 

//set up Button 

    showButton=(Button) findViewById(R.id.showChoiceButton); 

showButton.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v) { 



     int selectedOption=radioGroup.getCheckedRadioButtonId(); 


     radioChoiceButton=(RadioButton) findViewById(selectedOption); 

     String displayText; 


     switch(selectedOption) { 

      case R.id.RadioButtonLiberal: 

       displayText =getResources().getString(R.string.liberal_description); 


       break; 
      case R.id.RadioButtonPaleoCon: 
       displayText=getResources().getString(R.string.paleoconservative_description); 

       break; 

//OTHER CASES 

     } 

     showChoiceTextView.setText(displayText); 

     showChoiceTextView.setText(radioChoiceButton.getText()); 





    } 
}); 




} 

此外,當我試圖重寫我的代碼,並再次運行它,我上線的誤差包含showChoiceTextView.setText(displayText);哪裏它說displayText尚未初始化。這是我得到的唯一的錯誤。我究竟做錯了什麼?

回答

0

試試這個:

String displayText = null; 

String displayText = ""; 

switch(selectedOption) { 

      case R.id.RadioButtonLiberal: 

       displayText =getResources().getString(R.string.liberal_description); 


       break; 
      case R.id.RadioButtonPaleoCon: 
       displayText=getResources().getString(R.string.paleoconservative_description); 

       break; 
      default: 
       displayText = ""; 
//OTHER CASES 

     } 

如果您switch statement不匹配任何selectedOption,你displayText未初始化。 你的編譯器認識到這一點,並給你一個很好的提示。

我很確定您忘記了switch中的default部分。添加default部分總是一種很好的風格。

此外:刪除此行showChoiceTextView.setText(radioChoiceButton.getText());

+0

我跑我的程序,它產生的任何錯誤,但它仍然沒有顯示時,我點擊了我想要的文字「點擊我!」按鈕。當我選擇了Liberal選項時,例如,它不應該顯示「Liberal」,而是顯示在保存在res/strings/val xml部分中的liberal_description字符串名稱中的內容,當我單擊「click我!」按鈕 –

+0

你用下面這行覆蓋你的edittext值:showChoiceTextView.setText(radioChoiceButton.getText()); –

+0

我沒跟着你。你是什​​麼意思覆蓋我的edittext值? –