2017-05-03 6 views
-1

アンドロイドアプリケーション内の別のアクティビティからアクティビティをリロードする必要があります。 2番目のアクティビティはダイアログウィンドウで、ダイアログウィンドウのベースアクティビティに基づいてコンテンツを更新する必要があります。 (ダイアログアクティビティのクリックボタンで)他のアクティビティからアクティビティをリフレッシュするAndorid

+3

最初のアクティビティで 'startActivityForResult'を使用していますか? –

+0

はい.2番目のアクティビティを初期化するためにstartActivityForResultを使用しました。 – zooha

+1

[OK]をクリックすると、「更新する」ことを行うには 'onActivityResult'を実装する必要があります –

答えて

0

「A」はリロードしたいアクティビティ、「B」は別のアクティビティです。

この場合、AからBへ移動するときは、 に電話するだけでに電話すると、BからAを呼び出すとアクティビティAが再度読み込まれます。

0

ダイアログウィンドウとアクティビティは完全に異種のものです。

最初のアクティビティをダイアログから更新することは可能です。あなたはインターフェイスを使用してそれを行うことができます。

ここには簡単な解決策があります。最初のアクティビティでは、インターフェイス名IRefreshIntefaceが実装されています。それは定義が怒鳴るようなものであるのです。

public interface IRefreshInteface(){ 
    public void doRefreshValue(String commandValue); 
} 

を今、あなたはあなたの活動にIRefreshIntefaceを実装する場合は、メソッドdoRefreshValue(String commandValue)を取得し、ここでのリフレッシュのコードを記述します。

@Override 
void doRefreshValue(String commandValue){ 
// Write refresh code here 
} 

ここであなたの活動のコンテキストがあります。そのコンテキストオブジェクトを使用すると、このdoRefreshValue(String commandValue)メソッドを簡単に呼び出すことができます。 、

ここ
public AlertDialog displayMessage(Context context, String title, String message){ 
     AlertDialog.Builder builder = new AlertDialog.Builder(context); 
     builder.setTitle(title); 
     builder.setMessage(message); 
     LayoutInflater inflater = LayoutInflater.from(context); 
     final View v = inflater.inflate(R.layout.custom_view, null); 
     builder.setView(v); 
     shipText = (EditText)v.findViewById(R.id.shipNameEditText); 
     scientistNameText = (EditText)v.findViewById(R.id.scientistEditText); 
     scientistEmailText = (EditText)v.findViewById(R.id.emailEditText); 
     volumeText = (EditText)v.findViewById(R.id.volumeEditText); 
     colourText = (EditText)v.findViewById(R.id.colourEditText); 
     builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       ((IRefreshInteface) context).doRefreshValue("YOUR_COMMAND"); 


      } 
     }); 
     builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.cancel(); 
      } 
     }); 
     AlertDialog dialog= builder.create(); 
     dialog.show(); 
     Button tb = dialog.getButton(DialogInterface.BUTTON_POSITIVE); 
     tb.setOnClickListener(new CustomListener(dialog)); 

     return dialog; 
    } 

displayMessage()方法に、アクティビティのコンテキストを渡し、この方法を使用して、アクティビティメソッドdoRefreshValueを呼び出します:ここではサンプルコードがある

((IRefreshInteface) context).doRefreshValue("YOUR_COMMAND"); 

より多くの情報訪問hereの場合とhere

・ホープこれはあなたの問題を解決します。悪い英語で申し訳ありません:)

1

あなたの活動を再読み込みしてください。

context.startActivity(context.getIntent()); 
context.finish(); 
関連する問題