私は 1 つのアプリケーションを開発しており、5 つのタブを表示する必要があり、各タブで別のアクティビティを呼び出しています。最後のタブでメニューを表示しています。
主な問題は、アクティビティがタブ変更イベントでのみ呼び出されることです。最後のタブをクリックして初めてメニューが表示され、メニューを選択した後にそのタブをもう一度クリックしても何も起こりません。
では、この種の問題を解決するにはどうすればよいでしょうか。このタスクを実行する他の方法はありますか?
どんな助けでも大歓迎です.Thanks
これが私のコードです:
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();
}
}
});