1

複数の値を含む各リストビュー行から個別に値を別のアクティビティに意図したいと考えています。別のアクティビティで、editext の各値を個別にフェッチします。

私のコードは次のとおりです。

try
            {               
                JSONArray jArray =  new JSONArray(result);
                final ArrayList <String>arrayListTitle = new ArrayList<String>();
                    for(int i=0;i<jArray.length();i++)
                    {   
                        StringBuilder s = new StringBuilder();
                        JSONArray innerJsonArray = jArray.getJSONArray(i);
                        JSONObject json_data = innerJsonArray.getJSONObject(0);                          
                         at1=json_data.getString("title");
                         at= json_data.getString("mdate");
                         at2=json_data.getString("mtime");
                         at3=json_data.getString("venue");
                         at4=json_data.getString("organiser");
                         arrayListTitle.add(at1);
                         arrayListTitle.add(at);
                         arrayListTitle.add(at2);
                         arrayListTitle.add(at3);
                         s.append("\nTitle:"+at1);
                         s.append("\ndate:"+at);
                         s.append("\nTime:"+at2);
                         s.append("\nVenue:"+at3);
                         s.append("\nOrganiser:"+at4);  
                         s.append("\n");


                         r.add(s.toString());
                    }


                l.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, r));
                l.setOnItemClickListener(new OnItemClickListener() 
                {
                    public void onItemClick(AdapterView<?> myAdapter, View myView, int myItemInt, long mylng) 
                    {
                      String selectedFromList =(String) (l.getItemAtPosition(myItemInt));

                        // Starting new intent
                        intent1 = new Intent(RequestmeetActivity.this, ConfirmmeetActivity.class);


                        intent1.putExtra("title", arrayListTitle.get(myItemInt));
                        intent1.putExtra("mdate", arrayListTitle.get(myItemInt));
                        intent1.putExtra("mtime", arrayListTitle.get(myItemInt));
                        intent1.putExtra("venue", arrayListTitle.get(myItemInt));


                        startActivity(intent1); 
                    }                 
              });
            }

私の活動は次のようになります。

ここに画像の説明を入力

したがって、このリスト ビューの行から個別に値をフェッチし、それらの値を別のアクティビティにインテントしたいと考えています。どうやってやるの。Pls hlp me 私はアンドロイドの初心者です.. よろしくお願いします。別のアクティビティで

Bundle extras = getIntent().getExtras();
    if(extras != null){ 
      mtitle = extras.getString("title");
      stime = extras.getString("mtime");
      sdate = extras.getString("mdate");
      cvenue = extras.getString("venue");
    }

    title.setText(mtitle);
    cdate=(EditText)findViewById(R.id.editText2);
    cdate.setText(sdate);
    venue=(EditText)findViewById(R.id.editText4);
    venue.setText(cvenue);
    ctime=(EditText)findViewById(R.id.editText3);
    ctime.setText(stime);
4

3 に答える 3

1

グローバル ArrayList arrayListTitle = new ArrayList を定義します。rで定義したとおり。forループにコードを追加する前に値を追加します。タイトルの arrayListTitle.add(at1);

ArrayList<String> arrayListTitle = new ArrayList<String>;

    for(int i=0;i<jArray.length();i++) {    
            StringBuilder s = new StringBuilder();
            JSONArray innerJsonArray = jArray.getJSONArray(i);
            JSONObject json_data = innerJsonArray.getJSONObject(0);
            at1=json_data.getString("title");
            at= json_data.getString("mdate");
            at2=json_data.getString("mtime");
            at3=json_data.getString("venue");
            at4=json_data.getString("organiser");
            arrayListTitle.add(at1);  // check this line I have added value of title in arraylist you can take it same as data and time etc.
            s.append("\nTitle:"+at1);
            s.append("\ndate:"+at);
            s.append("\nTime:"+at2);
            s.append("\nVenue:"+at3);
            s.append("\nOrganiser:"+at4);   
            s.append("\n");
            r.add(s.toString());
        }

リストビュー項目をクリック:

 l.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> myAdapter, 
                                   View myView, int myItemInt, long mylng) {
        String selectedFromList =(String) (l.getItemAtPosition(myItemInt));
        // Starting new intent
        intent1 = new Intent(RequestmeetActivity.this, 
                                                    ConfirmmeetActivity.class);
        intent1.putExtra("title",arrayListTitle.get(myItemInt)); // check this line get value from the arraylistTitle for the particular position.
        intent1.putExtra("mdate",selectedFromList);
        intent1.putExtra("uid",uid);
        startActivity(intent1); 
    }

別のアクティビティでタイトルを取得している間: 次のようなコードを記述します。

String title;

Bundle extras = getIntent().getExtras();
if(extras != null){ 
  title = extras.getString("title"); // same for others
}

editTxt.setText(title);
于 2013-04-30T12:28:38.517 に答える
0

私が理解しているように、選択した行のデータ全体を2番目のアクティビティに送信し、同じものを編集したいと考えています。

これを行うには、基本クラスとして arrayadapter を使用して単純なカスタム アダプターを作成することをお勧めします。

アダプターの getView メソッドで、Tag に JSON オブジェクトを設定すると、json オブジェクト全体を 2 番目のアクティビティに渡すことができます。

簡単なアダプターの例はこちら

于 2013-04-30T09:51:03.570 に答える
0
  • Android のデフォルトのリスト アイテム レイアウト (android.R.layout.simple_list_item_1) を使用する代わりに、リスト アイテムに独自のカスタム レイアウトを使用します。

  • そのリスト アイテムでは、各フィールドを各テキスト ビューとして分離できます。

  • 次に、アダプターから各フィールドを取得できます。

于 2013-04-30T09:44:17.850 に答える