Android:如果数据库中没有值,请隐藏单选按钮

时间:2013-11-18 03:57:09

标签: java android database sqlite radio-button

如果没有价值,我正试图隐藏单选按钮和文本。单选按钮文本的值,我从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

1 个答案:

答案 0 :(得分:0)

尝试使用isNull方法检查空值。

if(OptionName3 ==null ){

  txtOptionName3.setVisibility(View.GONE);
}