-1

onclicklistener を使用してリストビューを作成しようとしています。ユーザーがリスト ビューのアイテムをクリックすると、新しいアクティビティが開始されます。リストビューから別のアクティビティにファイルを転送するにはどうすればよいですか? 以下は、jsonデータを更新し、リストビューを更新するための私のコードです

public void updateJSONdata() {
    mCommentList = new ArrayList<HashMap<String, String>>();
    JSONParser jParser = new JSONParser();

    JSONObject json = jParser.getJSONFromUrl(READ_COMMENTS_URL);

    try {

        mComments = json.getJSONArray(TAG_POSTS);

        // looping through all posts according to the json object returned
        for (int i = 0; i < mComments.length(); i++) {
             JSONObject c = mComments.getJSONObject(i);

             // gets the content of each tag
             String title = c.getString(TAG_TITLE);
             String content = c.getString(TAG_MESSAGE);
             String username = c.getString(TAG_LNAME);
             String studnum = c.getString(TAG_USERNAME);
             // creating new HashMap
             /**SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(BsitLoungeActivity.this);
             String fname = sp.getString("firstname","anon");
             String lname = sp.getString("lasstname","anon");**/

             HashMap<String, String> map = new HashMap<String, String>();

             map.put(TAG_TITLE, title);
             map.put(TAG_MESSAGE, content);
             map.put(TAG_LNAME, username);
             map.put(TAG_USERNAME, "ID:"+studnum);
             // adding HashList to ArrayList
             mCommentList.add(map);

             // annndddd, our JSON data is up to date same with our array
             // listw
        }

    } catch (JSONException e) {
        e.printStackTrace();
    }
}


private void updateList() {

    ListAdapter adapter = new SimpleAdapter(this, mCommentList,
        R.layout.single_post, new String[] { TAG_TITLE, TAG_MESSAGE,
                TAG_LNAME,TAG_USERNAME}, new int[] { R.id.title, R.id.message,
                R.id.username,R.id.username2 });


    ListView lv = getListView();    
    lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

            // This method is triggered if an item is click within our
            // list. For our example we won't be using this, but
            // it is useful to know in real life applications.

        }
    });
}  

ハッシュマップに挿入されたデータを使用できますか? そしてどうやって?誰か助けてください

4

4 に答える 4

0

あなたのリストビューでこれをやってみてください

    lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
        if(position ==1){
            startActivity(new Intent(this, NewClass.class));
}
else if(position ==2){
    }
});
于 2013-09-04T13:29:34.220 に答える
0

文字列値を渡す必要がある場合

 lv.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

         String s = mCommentList.get(position).get(TAG_TITLE).toString();
         Intent i = new Intent(MainActivity.this,SecondActivity.class);
         i.putExtra("key",s);
         startActivity(i);       

    }
});

ハッシュマップを渡す必要がある場合

lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

        Intent i = new Intent(MainActivity.this,SecondActivity.class);
        i.putExtra("arraylist",mCommentList);
        }
    });

SecondActivity では、次のように取得します

ArrayList<HashMap<String, String>> arl = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist");
于 2013-09-04T13:46:39.037 に答える
0

次のようなことをして、

@Override
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

     Intent intent = new Intent(MainActivity.this,SecondActivity.class);
   intent.putExtra("extra_text", string); // string should contain the value which you wan to send to the next class.
   startActivity(intent);

    }

セカンドアクティビティ

 String text = getIntent().getStringExtra("extra_text");
于 2013-09-04T13:31:44.567 に答える