【问题标题】:Android how to pass data related to a listview item from sqlite database into next activityAndroid如何将与listview项目相关的数据从sqlite数据库传递到下一个活动
【发布时间】:2013-05-07 15:31:00
【问题描述】:

我需要将数据从数据库传递到下一个活动,该数据与所选项目位于同一行。我试过这样做,但是它显示了列表视图中的所有数据。我需要在列表视图项目中显示标题并在下一个活动中显示描述。 这是我的代码:

package com.example.assfar.travel_guide;

import java.util.ArrayList;
import java.util.List;
import com.example.assfar.R;
import com.example.assfar.database.DBHelper;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;



public class TravelGuide extends ListActivity {

    private DBHelper dataBase;
    private List<String> guide_title_list= new ArrayList<String>();
    private Cursor cursor;
    String title;
    Integer id;
    String desc;



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

        dataBase=  DBHelper.instance();
        SQLiteDatabase db= dataBase.getWritableDatabase();

        cursor= db.rawQuery("select * from Tour_Guide", null);

        if(cursor!=null) {
             if(cursor.moveToFirst());
             {
                 do
                {

                  desc = cursor.getString(cursor.getColumnIndex("tour_Description"));
                  title= cursor.getString(cursor.getColumnIndex("guide_title")); 
                  id= cursor.getInt(cursor.getColumnIndex("_id"));
                  guide_title_list.add("" + title +id +desc );


                 } while(cursor.moveToNext());

             }
                 }

        this.setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, guide_title_list));

    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
       super.onListItemClick(l, v, position, id);

       //String selectedItem= ((TextView) v).getText().toString();

       String selectedValue= (String) getListAdapter(). getItem(position);

       Intent i = new Intent(TravelGuide.this, Travel_Guide_Details.class);

        i.putExtra("selected item", selectedValue);


        startActivity(i);

        }

}

以及下一个活动代码:

package com.example.assfar.travel_guide;

import com.example.assfar.R;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.TextView;

public class Travel_Guide_Details extends Activity {

    public static  Cursor cursor;
    private TextView textView;


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

        //tour guide description in text view
        textView = (TextView)findViewById(R.id.guide_desc);

        Intent i= getIntent();

        // getting attached intent data
        String item = i.getStringExtra("selected item");

        // displaying selected product name
        textView.setText(item);

         } }

【问题讨论】:

    标签: android sqlite listview android-intent listactivity


    【解决方案1】:

    试试这个

    取一个HashMap类型的字段

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

    在你的 FirstActivity 中

    也像这样向 HashMap 添加值

        desc = cursor.getString(cursor.getColumnIndex("tour_Description"));
        title= cursor.getString(cursor.getColumnIndex("guide_title")); 
        id= cursor.getInt(cursor.getColumnIndex("_id"));
        guide_title_list.add("" + title +id +desc );
        details.put("" + title +id +desc,title+desc);
    

    并在您的 ItemClick 中获取这样的值

     String selectedValue= (String) getListAdapter(). getItem(position);
       String itemTitleDesc=details.get(selectedValue);
    

    然后通过

     i.putExtra("selected item", itemTitleDesc);
    

    【讨论】:

    • 如何将照片传递给下一个活动?
    猜你喜欢
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 2019-06-14
    • 1970-01-01
    • 2016-12-02
    • 2019-10-08
    相关资源
    最近更新 更多