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);
        }
    });

我必须做什么?使用 Bundle 将信息传递给其他 NV2 Activity?或者类似的东西?

4

2 回答 2

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 回答
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);

注意:your_other_class_name 类似于NV1,而不是NV1.class

于 2012-07-03T20:05:07.390 回答