【问题标题】:Android retrieve image from sqlite and pass it to next activity through listview itemAndroid 从 sqlite 检索图像并通过 listview 项将其传递给下一个活动
【发布时间】:2013-05-06 19:09:01
【问题描述】:

提前致谢。我成功地将数据从列表视图传递到下一个活动,但现在我需要将数据库中的图像添加到列表视图,然后将其传递给下一个活动。或者如果它最简单,只需将图像传递给下一个活动而不在列表视图中显示它。

package com.example.assfar.travel_guide;

import java.io.ByteArrayInputStream;
import java.util.ArrayList;
import java.util.HashMap;
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.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
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>();
    HashMap<String,String> details= new HashMap<String,String>();
    private Cursor cursor;
    String title;
    Integer id;
    String desc;
    private ImageView imgv;



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

        imgv = (ImageView) findViewById(R.id.image);

        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 );
                 details.put("" + title +id  ,title+desc+imgv);

                  } 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);
       String itemTitleDesc=(String) details.get(selectedValue);

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

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

        }
}

下一个活动:

    package com.example.assfar.travel_guide;

import com.example.assfar.R;
import com.example.assfar.database.DBHelper;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class Travel_Guide_Details extends Activity {
    private DBHelper dataBase;


    private TextView textView;
    private ImageView imgv;
    Bitmap bmp;


    @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 item name
        textView.setText(item);

    }
}

【问题讨论】:

标签: android database image sqlite listview


【解决方案1】:

您可以在调用startActivity(intent) 之前使用intent.putExtra("ipath",imagePath) 传递图像路径。然后在你的下一个活动中获得这条路径。现在加载图像..

【讨论】:

    【解决方案2】:

    从 db 中检索图像路径并存储在 hashset 或 hashmap 中,然后存储在 sharedprefrence 中,在下一个活动中,您可以从 sharepreference 中获取图像。希望你能得到所有这些东西

    【讨论】:

      猜你喜欢
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多