如果没有价值,我正试图隐藏单选按钮和文本。单选按钮文本的值,我从SQLite数据库中获取它,如果其中一个字段为空,我将单选按钮的可见性设置为不可见。但是,当我这样做时,即使其中一个选项中有内容,它也会隐藏。
以下是我的代码。
FTR,我没有隐藏option1,option2和pollName,因为它们永远不会为空。
我确定我在if和else语句中做错了但是我试过玩但却找不到解决方案。
完整代码:
public class ViewPollActivity extends Activity {
DatabaseHandler DbHandler;
SharedPreferences settings;
SharedPreferences.Editor editor;
TextView txtPollId, txtPollName;
RadioButton txtOptionName1, txtOptionName2, txtOptionName3, txtOptionName4,
txtOptionName5;
Button btndisplay;
RadioGroup rdgrp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_poll);
txtPollId = (TextView) findViewById(R.id.pollId);
txtPollName = (TextView) findViewById(R.id.pollName);
txtOptionName1 = (RadioButton) findViewById(R.id.radio0);
txtOptionName2 = (RadioButton) findViewById(R.id.radio1);
txtOptionName3 = (RadioButton) findViewById(R.id.radio2);
txtOptionName4 = (RadioButton) findViewById(R.id.radio3);
txtOptionName5 = (RadioButton) findViewById(R.id.radio4);
btndisplay = (Button) findViewById(R.id.display);
rdgrp = (RadioGroup) findViewById(R.id.radioGroup1);
// Shared Preferences
// settings = getSharedPreferences("MYPREFS", 0);
// String username = settings.getString("username", null);
Intent i = getIntent();
String pollId = i.getStringExtra("pollId");
txtPollId.setText(pollId);
DbHandler = new DatabaseHandler(this);
Cursor c = DbHandler.getSinglePoll(pollId);
if (c.moveToFirst()) {
String PollName = c.getString(c.getColumnIndex("pollName"));
String optionName1 = c.getString(c.getColumnIndex("optionName1"));
String optionName2 = c.getString(c.getColumnIndex("optionName2"));
String optionName3 = c.getString(c.getColumnIndex("optionName3"));
String optionName4 = c.getString(c.getColumnIndex("optionName4"));
String optionName5 = c.getString(c.getColumnIndex("optionName5"));
txtPollName.setText(PollName);
txtOptionName1.setText(optionName1);
txtOptionName2.setText(optionName2);
txtOptionName3.setText(optionName3);
txtOptionName4.setText(optionName4);
txtOptionName5.setText(optionName5);
if(optionName3 == null) {
txtOptionName3.setVisibility(View.INVISIBLE);}
if (optionName4 == null) {
txtOptionName4.setVisibility(View.INVISIBLE);}
if(optionName5 == null) {
txtOptionName5.setVisibility(View.INVISIBLE);}
} else {
}
c.close();
DbHandler.close();
btndisplay.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String selectedRadioValue = ((RadioButton) findViewById(rdgrp
.getCheckedRadioButtonId())).getText().toString();
Toast.makeText(ViewPollActivity.this, selectedRadioValue,
Toast.LENGTH_SHORT).show();
}
});
}// on Create
}// main class
答案 0 :(得分:0)
尝试使用isNull方法检查空值。
if(OptionName3 ==null ){
txtOptionName3.setVisibility(View.GONE);
}