我正在开发一个应用程序,我必须在其中显示五个选项卡,并且在每个选项卡上我调用不同的活动。在我的最后一个选项卡中,我显示菜单。
主要问题是我的活动仅在选项卡更改事件上被调用。当我第一次单击最后一个选项卡时,它会显示一个菜单,并且在选择任何菜单后,如果我再次单击该选项卡,则什么也没有发生。
那么如何解决这类问题呢?还有其他方法可以完成这项任务吗?
任何帮助将不胜感激。谢谢
这是我的代码:
public class More extends ActivityGroup{
Button btn1;
ExpandableListView elw;
Context ctx;
public ListView modeList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ctx=this;
Toast.makeText(More.this,"in more",200).show();
setContentView(R.layout.more);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("More Option");
modeList = new ListView(this);
String[] stringArray = new String[] { "About", "Settings","Invite By Message","Privacy Policy","Deactivate Account","Exit" };
ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, stringArray);
modeList.setAdapter(modeAdapter);
builder.setView(modeList);
final Dialog dialog = builder.create();
dialog.show();
modeList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
// TODO Auto-generated method stub
String item=(String) modeList.getItemAtPosition(position);
Toast.makeText(More.this,item,200).show();
switch(position) {
case 0:
setContentView(R.layout.about);
dialog.dismiss();
TabHost tabHost = welcome.self.getTabHost();
tabHost.setCurrentTab(4);
// tabHost.setCurrentTab(4);
break;
case 1:
setContentView(R.layout.settings);
dialog.dismiss();
break;
case 2:
setContentView(R.layout.messages);
dialog.dismiss();
break;
case 3:
setContentView(R.layout.policy);
dialog.dismiss();
break;
case 4:
Toast.makeText(More.this,"Deactivate the Account",200).show();
dialog.dismiss();
break;
default:
Toast.makeText(More.this,"Exit the application",200).show();
dialog.dismiss();
welcome.self.finish();
}
}
});