0

Activity と background の両方を持つアプリケーションを開発しましたService。私のメインActivity ATab Hostを開始するService S and Activity B,C and D with tabs via Intentです。

サービスSは、リモート データベースからデータを取得し、アプリケーションのローカル データベースに格納します。

からのデータがある場合はRemote databaseService S starts an Activity E with an Alert Box. をクリックするOK button of the Alert Boxと、メインのアクティビティ A (タブ ホスト) が開きます。

ユーザーがアクティビティ B にいて、ダイアログ ボックスが開いた場合、[OK] ボタンをクリックすると、ユーザーはアクティビティ B ではなくアクティビティ A に切り替わります。アクティビティ B (現在アクティブなアクティビティ) に移動するにはどうすればよいですか?

アラート ボックスを使用したアクティビティの一部。

public class Popup extends Activity{
int value = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dialog);

    Bundle extras = getIntent().getExtras(); 
    if(extras !=null)
    {
        value = extras.getInt("key") ;     
    }

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    if(value == 1){
        builder.setMessage(value +  "new task has been assigned").setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {


            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                //mp.stop();

                Popup.this.finish();

            }
        }).show();
    }

    else {
        builder.setMessage(value + " " + "new tasks has been assigned").setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {


            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                //mp.stop();

            }
        }).show();
    }}}
4

3 に答える 3

0

警告ボックスが表示されると、現在のアクティビティはonPause()状態になります。したがって、onPause()メソッドをovverideし、ブール変数をtrueに設定してから、onResume()メソッドで次のようにさらに作業を行う必要があります。

private boolean state=false;
    onPause(){
    state=true;
super.onPause();
}
onResume(){
  if(state==true){
//do your required stuff,for  example you want to stay in current activity(B)
       A.tabHost.setCurrentTab(here set B activity tab index);//declare tabHost variable as public static in activity A.
 super.onResume();

}

}

于 2012-09-17T10:34:15.117 に答える
0

同じアクティビティにとどまるには、BlanklのままonClick Event でコードを変更する必要があります。AlertBox

お気に入り

AlertDialog.Builder builder = new AlertDialog.Builder(this);
    if(value == 1){
        builder.setMessage(value +  "new task has been assigned").setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {


        }
    }).show();
}

else {
    builder.setMessage(value + " " + "new tasks has been assigned").setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {


        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
    }).show();
于 2012-09-17T10:14:48.357 に答える
0

アクティビティ A (TabHost) で、TabHostgetCurrentTabメソッドを使用して現在のタブを特定し、現在のタブsetCurrentTabを設定します。

于 2012-09-17T10:18:19.003 に答える