アクティビティからインテント別のアクティビティに行くとき、どのようにクラスローダー名を取得できますか? クラスローダーの名前が必要です。 私の意図が明確でない場合は、このコードを見てください。インテントのクラスローダーを取得します。私はfirstActivityの名前にsecondActivityのtextViewを設定したい(実際には私はクラスローダ名が必要です)
私はこの質問のテストアプリケーションを作成しました。 3つのアクティビティがあります。 ActivityA、ActivityBおよびActivityC。 ActivityAとActivityBにactivityCを開始するボタンがあります。
ActivityA:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_a);
Button btnGoFromActivityAToActivityC = (Button) findViewById(R.id.btnGoFromActivityAToActivityC);
btnGoFromActivityAToActivityC.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(ActivityA.this, ActivityC.class);
startActivity(intent);
}
});
}
ActivityB:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_b);
Button btnGoFromActivityBToActivityC = (Button) findViewById(R.id.btnGoFromActivityBToActivityC);
btnGoFromActivityBToActivityC.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(ActivityB.this, ActivityC.class);
startActivity(intent);
}
});
}
ActivityC:ActivityCで
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_c);
TextView textViewNameOfFirstActivity = (TextView) findViewById(R.id.textViewNameOfFirstActivity);
if (/* if we came from ActivityA */)
{
textViewNameOfFirstActivity.setText("You came from ActivityA");
}
else if (/* if we came from ActivityB */)
{
textViewNameOfFirstActivity.setText("You came from ActivityB");
}
}
ルック...
私はこれをどのように行うことができますか?
まあ、実際にそれは良いアイデアだ..しかし、あなたが知っているように、意図はなりますクラス内で実行されます。つまり、ボタンをクリックすると、最初にクラスが開き、次にインテントが実行されます。だから、意図はそのクラスに定義されています。 **私の質問:**クラス*(クラス)の名前がclassAに等しいかどうかをチェックし、次にsthを実行するかどうかを確認する方法はありますか? – MostafaUTD
@MostafaUTDこれは正しいアプローチです。あなたは間違った言葉を使っているのですか、それともこの言葉がどのように働くのか理解できません。ボタンをクリックしても "クラスを開く"ことはできません**クラス**のインスタンスでメソッドを呼び出します。 'Intent'は"実行 "しません。 'Intent'は単に"メッセージ "のようなデータコンテナです。 'startActivity()'を呼び出すと、Androidフレームワークに 'Intent'を与え、'この 'Intent'を扱うことができる' Activity'を見つけてください。 Androidは 'startActivity()'と呼ばれるコンポーネントを特定するための組み込みの方法を提供していません。 –