从列表视图中选择正确的数据

时间:2016-09-16 12:19:09

标签: java android listview

我有代码将数据发送到另一个活动,但是当我点击我的项目时,单击监听器我只从第一个项目获取数据。

这是拳头活动执行后的代码:

  protected  void onPostExecute(JSONObject objdanejson){
        pDialog.dismiss();

        try {
            android = objdanejson.getJSONArray(TAG_ZAWARTOSC);
            for(int i = 0; i < android.length(); i++){
                JSONObject c = android.getJSONObject(i);

                final String akt_tytul = c.getString(TAG_TYTUL);
                String akt_skrot = c.getString(TAG_SKROT);
                final String akt_tresc = c.getString(TAG_TRESC);

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

                map.put(TAG_TYTUL, akt_tytul);
                map.put(TAG_SKROT, akt_skrot);

                Log.d(akt_tytul, "tytul");
                Log.d(akt_skrot, "skrot");
                Log.d(akt_tresc, "tresc");

                oslist.add(map);
                lista_aktualnosci = (ListView)findViewById(R.id.lista_aktualnosci);

                final ListAdapter adapter = new SimpleAdapter(aktualnosci.this, oslist,
                      R.layout.aktualnosc_item,
                        new String[]{TAG_TYTUL, TAG_SKROT}, new int[]{R.id.aktTytul, R.id.aktSkrot});
                lista_aktualnosci.setAdapter(adapter);

                lista_aktualnosci.setOnItemClickListener(new AdapterView.OnItemClickListener(){
                        @Override
                        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                            Toast.makeText(aktualnosci.this, "Kliknąłeś na " + oslist.get(+position).get("nazwa"),Toast.LENGTH_SHORT).show();

                            Intent czytaj = new Intent(aktualnosci.this, aktualnosc_czytaj.class);
                            czytaj.putExtra("tytuł",akt_tytul);
                            czytaj.putExtra("tresc",akt_tresc);
                            startActivity(czytaj);
                        }
                });

这就是我在第二项活动中所拥有的:

package pl.webimpuls.wicms;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class aktualnosc_czytaj扩展了AppCompatActivity {

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_aktualnosc_czytaj);

        TextView aktczytaj_tytul = (TextView)    findViewById(R.id.aktczytaj_tytul);
        TextView aktczytaj_tresc = (TextView)     findViewById(R.id.aktczytaj_tresc);

        String czytajtytul;
        String czytajtresc;

        if (savedInstanceState == null) {
            Bundle extras = getIntent().getExtras();
            if(extras == null) {
                czytajtytul = null;
                czytajtresc = null;

                aktczytaj_tytul.setText(czytajtytul);
                aktczytaj_tresc.setText(czytajtresc);
            } else {
                czytajtytul = extras.getString("tytuł");
                czytajtresc = extras.getString("tresc");

                aktczytaj_tytul.setText(czytajtytul);
                aktczytaj_tresc.setText(czytajtresc);    
            }
        } else {
            czytajtytul = (String) savedInstanceState.getSerializable("tytuł");
            czytajtresc = (String) savedInstanceState.getSerializable("tresc");

            aktczytaj_tytul.setText(czytajtytul);
            aktczytaj_tresc.setText(czytajtresc);
        }
    }
}

如何使其显示我点击的项目中的数据?

2 个答案:

答案 0 :(得分:0)

你做错了。如果没有在意图中传递bundle,你就不会使用bundle。 您可以通过getIntent()获取数据.getStringExtra(key)。

答案 1 :(得分:0)

在第二个活动中,您应该使用Intent而不是Bundle:

Intent intent = getIntent();
czytajtytul = intent.getStringExtra("tytuł");
czytajtresc = intent.getStringExtra("tresc");