1

インテントを使用して、あるアクティビティから別のアクティビティに値を渡したい..値を取得していない..値がnullとして取得されている..ログキャットにエラーはありません. どんな助けでもいただければ幸いです。前もって感謝します。

最初の活動

 Intent intent = new Intent(Nexttopic.this, Quesans.class);
        String name = getIntent().getStringExtra("name");
        intent.putExtra("TopicName", tname);
        intent.putExtra("Topicid", topicid);
        intent.putExtra("LevelName",TAG_LEVELNAME);
        intent.putExtra("Levelid",TAG_LEVELID);
        intent.putExtra("Groupid",TAG_GROUPID);
 startActivity(intent); 

第二の活動

    Intent i=getIntent();
    name=i.getStringExtra(tname);
    tid=i.getStringExtra(topicid);
    lid=i.getStringExtra(TAG_LEVELID);
    gid=i.getStringExtra(TAG_GROUPID);
    System.out.println("Result :"+name);
    System.out.println("Result :"+tid);
    System.out.println("Result :"+lid);
    System.out.println("Result :"+gid);
4

6 に答える 6

2

別のアクティビティを呼び出すときに、設定した追加フィールドの名前を参照する必要があります。だからこれを変更してください:

Intent i=getIntent();
name=i.getStringExtra(tname);
tid=i.getStringExtra(topicid);
lid=i.getStringExtra(TAG_LEVELID);
gid=i.getStringExtra(TAG_GROUPID);
System.out.println("Result :"+name);
System.out.println("Result :"+tid);
System.out.println("Result :"+lid);
System.out.println("Result :"+gid);

これに:

Intent i=getIntent();
name=i.getStringExtra("TopicName");
tid=i.getStringExtra("Topicid");
lid=i.getStringExtra("Levelid");
gid=i.getStringExtra("Groupid");
System.out.println("Result :"+name);
System.out.println("Result :"+tid);
System.out.println("Result :"+lid);
System.out.println("Result :"+gid);

それが役に立てば幸い。

于 2013-01-18T05:59:34.800 に答える
2

あなたはこのようにすべきです

第二の活動

Intent i=getIntent();
name=i.getStringExtra("TopicName");

値ではなくキーによる2番目のアクティビティデータアクセスで結果を取得するたびに。

お気に入り:

  name=i.getStringExtra("TopicName");

詳細については、このリンクを参照してください

于 2013-01-18T06:04:13.787 に答える
1

extra から値を取得している間String nameは、putextra を渡すのと同じにする必要があります。

通りすがり@

Intent intent = new Intent(Nexttopic.this, Quesans.class);
        String name = getIntent().getStringExtra("name");
        intent.putExtra("TopicName", tname);
        intent.putExtra("Topicid", topicid);
        intent.putExtra("LevelName",TAG_LEVELNAME);
        intent.putExtra("Levelid",TAG_LEVELID);
        intent.putExtra("Groupid",TAG_GROUPID);
 startActivity(intent); 

取得中@

     Intent i=getIntent();
     name=i.getStringExtra("TopicName");
     tid=i.getIntExtra("Topicid",0); 
     lid=i.getIntExtra("Levelid",0); 
     gid=i.getIntExtra("Groupid",0); 
     System.out.println("Result :"+name);
     System.out.println("Result :"+tid);
     System.out.println("Result :"+lid);
     System.out.println("Result :"+gid);

tid、lid、gid は整数であると仮定します。

putExtras

getExtras()

于 2013-01-18T06:05:52.010 に答える
0

あなたの2番目の活動では..このように与えます

最初のアクティビティで tname と topicid およびその他の文字列を公開し、次のように 2 番目のアクティビティで使用します

第二の活動

Intent i=getIntent();
name=i.getStringExtra(Nexttopic.tname);
tid=i.getStringExtra(Nexttopic.topicid);
于 2013-01-18T06:05:21.477 に答える
0

最初の活動

 Intent i = new Intent(FirstActivity(),SecondActivity.class);
   i.putExtra("wid", wid);
   i.putExtra("rid", rid);
  startActivity(i);

第二の活動

Bundle b = getActivity().getIntent().getExtras();
    wid = b.getString("wid");
    rid = b.getString("rid");
于 2013-01-18T06:07:59.237 に答える
0

子インテントから値を取得する場合、文字列名は親インテントで渡すものと同じである必要があります。文字列値を渡すだけでなく、クラスのリストをインテントを介して渡すことができます。ハッシュマップから値を取得する別の方法が利用可能です。グーグルで検索してください。https://stackoverflow.com/a/14393309/1697047はエッセイの一種です

于 2013-01-18T06:19:17.270 に答える