1

私は3つのテキストを持つリストビューを持っています。NV1 - NV2 - NV3。私の問題は、NV1 に触れると、NV1 のレイアウトが表示されることです。しかし、他のものでは何も起こりません。同じNVが表示されるだけです。

情報を渡すための 2 つのメソッドを作成します。

    private void adapter (PT1Activity a){
      this.a = a;
  }

private void showGame(int nivel){
    Intent intent = new Intent (PT1Activity.this, NV1.class);
    intent.putExtra("nivel2", nivel);
    startActivity(intent);
}

そして:

プライベート PT1Activity a;

アダプター(これ);

       ltNvs.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                long arg3) {


             a.showGame(position);
        }
    });

私がしなければならないこと?バンドルを使用して他の NV2 アクティビティに情報を渡しますか?? それとも似たようなもの?

4

2 に答える 2

0

showgame 関数は次のようになります。

private void showGame(int nivel){
Intent intent;
switch (nivel){
    case 1:
      intent = new Intent (PT1Activity.this, NV1.class);
      intent.putExtra("nivel1", nivel);
      break;
    case 2:
      intent = new Intent (PT1Activity.this, NV2.class);
      intent.putExtra("nivel2", nivel);
      break;
    case 3:
      intent = new Intent (PT1Activity.this, NV3.class);
      intent.putExtra("nivel3", nivel);
      break;
    default:
      intent = new Intent();
   }

startActivity(intent);
}

ただし、これはすべてのクラスが同じパッケージにあることを前提としています。別のパッケージでアクティビティを起動する場合、Intent(this, yourclass.Class)コンストラクターは機能しません。代わりに、次のようにしてみてください。

Intent intent = new Intent();
intent.setComponent(ComponentName.unflattenFromString("your.other.package/your.other.package.your_other_class_name"));
startActivity(intent);

NV1注: your_other_class_name はではなくのようなものになりますNV1.class

于 2012-07-03T20:05:07.390 に答える
0

正直に言うと、あなたが何を求めているのか完全にはわかりません。うまくいけば、これを見てアイデアを得ることができます。

private void showGame(int nivel){
    switch( nivel ) {
    case 1:
        Intent intent = new Intent (PT1Activity.this, NV1.class);
        intent.putExtra("nivel1", nivel);
        startActivity(intent);
        break;
    case 2:
        Intent intent = new Intent( PT1Activity.this, NV2.class );
        intent.putExtra( "nivel2", nivel );
        startActivity( intent );
        break;
    case 3:
        Intent intent = new Intent( PT1Activity.this, NV3.class );
        intent.putExtra( "nivel3", nivel );
        startActivity( intent );
        break;
}
于 2012-07-03T20:04:02.743 に答える