1

我正在自学编写一个 Android 应用程序。我使用以下代码为我的应用程序成功选择了不同的数据库:

public void manageDB()
{       
    setContentView(R.layout.dbmanager);     
    ScrollView ll = (ScrollView) findViewById(R.id.lstDb);
    final RadioGroup rg = new RadioGroup(this);
    rg.setLayoutParams(new RadioGroup.LayoutParams(RadioGroup.LayoutParams.FILL_PARENT, RadioGroup.LayoutParams.WRAP_CONTENT));
    rg.setOrientation(RadioGroup.VERTICAL);     
    for (int i=0; i < mDBList.items.size(); i++)
    {            
        RadioButton rb = new RadioButton(this);
        rb.setId(VIEW_RADIO_ID + i);
        rb.setText(mDBList.items.get(i).dictionaryName);
        rb.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));            
        rg.addView(rb,i);
        if (mDBFile != null && mDBFile.fileName.equals(mDBList.items.get(i).fileName))
        {
            rg.check(VIEW_RADIO_ID + i);
        }            
    }
    ll.addView(rg);

    Button btnOk = (Button) findViewById(R.id.btnOk);
    btnOk.setOnClickListener(new OnClickListener()
    {
        public void onClick(View v)
        {
            setContentView(R.layout.main);
            int selectedIndex = rg.getCheckedRadioButtonId();  
            if (selectedIndex < 0)
            {
                selectedIndex = 0;
            }               
            mDBFile = mDBList.items.get(selectedIndex - VIEW_RADIO_ID);             
            savePreferences();
            setContentView(R.layout.main);
            menuMain();
        }
    });     
  }

使用此代码,我可以单击单选按钮选择数据库,然后单击 OK 按钮确认并返回主屏幕。现在我想在主屏幕上分配一个按钮来执行此任务,这样我在选择数据库时就不必离开主屏幕。

由于我有两个数据库,理想情况下我想要一个双向按钮来完成这项任务。我的意思是当我单击按钮时,选择了 db_1。当再次单击该按钮时,将选择 db_2,反之亦然。

我不知道如何调整这段代码来满足我的这个要求。我想知道你们是否可以给我一点帮助。非常感谢您提前。

4

2 回答 2

0

如果您需要一键更改数据库而不是两次,您可以使用包含 2 个单选按钮的单选组,并监听选中的单选按钮更改。然后在 onCheckedChange() 中加载正确的数据库。

于 2013-04-30T10:06:25.067 回答
0

你为什么不使用“开关”我认为它会解决你的目的。看链接[这里:][1]

[1]: http: //developer.android.com/reference/android/widget/Switch.html 或者您也可以使用切换按钮。希望能帮助到你。

于 2013-04-30T10:17:49.800 回答