我正在教自己写一个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();
}
});
}
使用此代码,我可以单击单选按钮选择数据库,然后单击“确定”按钮确认并返回主屏幕。现在我想在主屏幕上指定一个按钮来执行此任务,这样我就不必在选择数据库时离开主屏幕。
由于我有两个数据库,理想情况下我想要一个双向按钮来完成这个任务。我的意思是当我点击按钮时,选择了db_1。再次单击该按钮时,将选择db_2,反之亦然。
我不知道如何调整此代码以满足我的这个要求。我想知道你们能不能给我一些帮助。非常感谢你提前。
答案 0 :(得分:0)
如果您需要一次点击而不是两次更改数据库,则可以使用包含2个radiobuttons and listen for checked radiobutton change的放射性组。 然后在onCheckedChange()中加载正确的数据库。
答案 1 :(得分:0)
为什么不使用“Switch”我认为它会解决你的目的。看看链接[here:] [1]
[1]:http://developer.android.com/reference/android/widget/Switch.html或者您也可以使用切换按钮。希望它有所帮助。