1

私はアンドロイドが初めてです..

私は意図の問題に直面しています..

私の問題は...あるアクティビティの文字列arrayListからユーザーが選択した値を別のアクティビティに渡したい...値は文字列です..JSONを介してデータベースから取得します。そして、値はarraylistに保存されます..

ここで、あるアクティビティから別のアクティビティに値を渡す必要があります..インテントを使用して..

      lvForDialog = (ListView) viewList.findViewById(R.id.List_view);
        ArrayAdapter<String> adapter = (new ArrayAdapter<String>(Nexttopic.this, R.layout.row_topic, R.id.child_row,tnamelist));
        lvForDialog.setAdapter(adapter);        
        lvForDialog.setOnItemClickListener(new OnItemClickListener()
    {
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position,long id)        
          {            
        Intent intent = new Intent(Nexttopic.this,Question.class);     
    intent.putExtra(TAG_TOPICNAME, tname);

TAG_TOPICNAME別のアクティビティに渡したい..ユーザーがその名前を選択したトピック名を渡したい...

これを行う方法?

どうもありがとう..

4

4 に答える 4

3

これを試して :

i.putExtra("Name", tname );
startActivity(i);

最初のアクティビティで、次のコードを 2 番目のアクティビティに追加してデータを取得できます。

Intent intent = getIntent();
String Name = intent.getExtras().getString("Name");

編集:これを例として使用して、onitemclickリスナーで選択したアイテムを取得します

@Override public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
{ 
    Cursor GettName = (Cursor)viewList.getItemAtPosition(position);//Get a Cursor from the selected position to access the selected Item
    String tname = GettName.getString(GettName.getColumnIndex(CustomerDBAdapter.KEY_TNAME)); // get approporiate String from that cursor
    i.putExtra("Name", tname );
    startActivity(i);
}
于 2013-02-06T10:57:40.780 に答える
1

startActivity(learnintent);以下の行の後にコードに欠けているものを呼び出す必要があります

Intent learnintent = new Intent(Nexttopic.this,Question.class);     
learnintent.putExtra(TAG_TOPICNAME, tname);

TAG_TOPICNAME使用する前に定数も定義していただければ幸いです。

次に、Questionアクティビティで以下のようにして値にアクセスします。

String topicName = intent.getIntent().getStringExtra(TAG_TOPICNAME);

ここでTAG_TOPICNAMEは、前のアクティビティで割り当てたのと同じ値にする必要があります。より適切に定義してclass Constants、この文字列定数をそこに置き、両方の場所で使用します。

于 2013-02-06T10:57:53.203 に答える
0

これを行う最も簡単な方法は、アクティビティを開始するために使用しているインテントでサインアウト アクティビティにセッション ID を渡すことです。

Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent)

詳細については、インテントのドキュメントを参照してください (「エクストラ」というタイトルのセクションを参照してください)。

于 2013-02-06T11:00:05.987 に答える
0

bundles を使用して値を渡すことができます。それをバンドルしてインテントで渡すことができます。サンプル コードを以下に示します....

バンドル = 新しいバンドル (); data1 = Double.valueOf(myEditText.getText().toString());

    bundle.putDouble("data1", data1);

    Intent intent = new Intent(this, AnotherActivity.class);
    intent.putExtras(bundle);
    startActivity(intent);
    finish();

インテントから取得する例

 Bundle b = getIntent().getExtras();
        noqs = b.getDouble("data1");
        mTvCat.setText("hhhhhh"+point+noqs);

また、それでよろしければ、静的変数に保存することもできます。また、アプリケーションのどこからでもアクセスできます。

于 2013-02-06T11:00:40.780 に答える