2012-02-13 13 views
3

いくつかの条件を調べるために呼び出し側のアクティビティの名前を取得したいのですが、解決策は何ですか?呼び出しアクティビティの名前を取得するには?

+0

呼び出しアクティビティを意味しますか? –

+1

activity.class.getName()???アクティビティーから別のアクティビティーを呼び出す場合、そのアクティビティーをバンドルに指定してから、インテントを開始することができます。 –

+0

私はこの質問に対する回答を正しく(活動としてまたはサービスとして)発信者の協力なしに誰か(活動またはサービス)が私を使用したいと思っているかを知ることができないと理解しましたか? – k3b

答えて

3

あなたはBundle

を使用して活動の間でデータを送信することができますが、この例を見てください: http://www.balistupa.com/blog/2009/08/passing-data-or-parameter-to-another-activity-android/

基本的には、パラメータとして、発信者の名前を入れる必要があります。

Bundle bundle = new Bundle(); 
bundle.putString(this.class.getName(), “ClassName”); 

Intent newIntent = new Intent(this.getApplicationContext(), ActivityClass2.class); 
newIntent.putExtras(bundle); 
startActivityForResult(newIntent, 0); 

そして、 ActivityClass2でこのパラメータを読むことができます:

Bundle bundle = this.getIntent().getExtras(); 
String className = bundle.getString(“ClassName″); 
5

私はあなたにも getCallingActivity().getClassName()

1

ステップ1でこれを達成することができると思う: は、あなたのプロジェクト - >新規作成> JavaClass->種類=インターフェイス

public interface ActivityConstants { 
    public static final int NameFromTheFirstActivity = 1001; 
    public static final int NameFromTheSecondActivity = 1002; 
    public static final int NameFromTheThirdActivity = 1003; 
} 

ステップ2をごinterface->右ボタンを作成します。 アクティビティ(アクティビティ1またはアクティビティ2またはアクティビティ3)に、アクティビティを呼び出す予定を作成するとき(ActivityChooseActionと呼ばれる)、エクストラを追加する必要があります。 アクティビティ1には、

私はこのことを願っています

Public class ActivityChooseAction...{ 
String parametersharedtouseinthisactivity=""; 
... 
... 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activitychooseaction_layout); 
    mPreferences = getSharedPreferences("CurrentUser", MODE_PRIVATE); 
    int callingActivity = getIntent().getIntExtra("calling-activity", 0); 

     switch (callingActivity) { 
      case ActivityConstants.NameFromTheFirstActivity: 
//write your parameter....if u have saved it into preferences you can do like 
parametersharedtouseinthisactivity = mPreferences.getString("nameparameter", defaultvalueyouwant); 
       break; 
      case ActivityConstants.NameFromTheSecondActivity: 
parametersharedtouseinthisactivity = mPreferences.getString("nameparameter", defaultvalueyouwant); 
       break; 
      case ActivityConstants.NameFromTheThridActivity: 
parametersharedtouseinthisactivity = mPreferences.getString("nameparameter", defaultvalueyouwant); 
       break; 
     } 
} 

:Activity3の中へ

Intent intent = new Intent(getApplicationContext(), ActivityChooseAction.class); 
        intent.putExtra("calling-activity", ActivityConstants.NameFromTheSecondActivity); 
        startActivity(intent); 

この書き込み:あなたはActivityChooseActionに入ると、これを書くことができた後

Intent intent = new Intent(getApplicationContext(), ActivityChooseAction.class); 
       intent.putExtra("calling-activity", ActivityConstants.NameFromTheThirdActivity); 
       startActivity(intent); 

をActivity2の中へ

Intent intent = new Intent(getApplicationContext(), ActivityChooseAction.class); 
        intent.putExtra("calling-activity", ActivityConstants.NameFromTheFirstActivity); 
        startActivity(intent); 

はこれを書きます誰かを助けることができた、私はここにユーザーが言ったことに従った:how to know the calling activity in android

関連する問題