Java Android从customListview获取图像,并在imageview中显示相同的图像,而不使用数据库
我有带有图像和文本的customListview。我正在访问数据库中的文本,并且图像存储为数组。当我单击listview的某一行时,我希望与该行图像对应的图像显示在另一个活动的imageview中。我不知道如何访问所选图像。我不想在数据库中存储图像 product\u display.javaJava Android从customListview获取图像,并在imageview中显示相同的图像,而不使用数据库,java,android,Java,Android,我有带有图像和文本的customListview。我正在访问数据库中的文本,并且图像存储为数组。当我单击listview的某一行时,我希望与该行图像对应的图像显示在另一个活动的imageview中。我不知道如何访问所选图像。我不想在数据库中存储图像 product\u display.java public class product_display extends Activity { ListView prd_list; @Override protected void onCreate
public class product_display extends Activity {
ListView prd_list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.product_dispay);
prd_list = (ListView) findViewById(R.id.list);
DataBaseHandler dbh = new DataBaseHandler(this);
Intent in=getIntent();
Bundle bundle=in.getExtras();
final String list=bundle.getString("key");
SQLiteDatabase db = dbh.getWritableDatabase();
Cursor cr = db.rawQuery("SELECT * FROM product", null);
final String[] pname = new String[cr.getCount()];
String[] price = new String[cr.getCount()];
int i = 0;
while(cr.moveToNext())
{
String name = cr.getString(cr.getColumnIndex("pname"));
String prprice = cr.getString(cr.getColumnIndex("pprice"));
pname[i] = name;
price[i] = prprice;
i++;
}
ListAdapter adapter = new ListAdapter(this, pname, price);
prd_list.setAdapter(adapter);
prd_list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String nme = pname[arg2];
// passing username from loginpage
Bundle bun = new Bundle();
bun.putString("key",list);
// passing product name as bundle
Bundle bn = new Bundle();
bn.putString("name",nme);
Intent in = new Intent(product_display.this, Product_Details.class);
in.putExtras(bun);
in.putExtras(bn);
startActivity(in);
}
});
}
}
public class ListAdapter extends BaseAdapter {
private final String[] pname;
private final String[] price;
Integer [] pmge ={R.drawable.candle1,R.drawable.candl3,
R.drawable.candl4,R.drawable.candl5,R.drawable.candl6,
R.drawable.lawn,R.drawable.sglc10,R.drawable.senson,R.drawable.thejus6669};
private Context mcontext;
public ListAdapter(Context c,String[] pname,String[] price){
mcontext=c;
this.pname=pname;
this.price=price;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return pname.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View List;
LayoutInflater mLayoutinflater=(LayoutInflater) mcontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(convertView==null){
List=new View(mcontext);
List=mLayoutinflater.inflate(R.layout.mylist, parent, false);
}
else{
List = (View)convertView;
}
TextView textView1 = (TextView)List.findViewById(R.id.pr_name);
TextView textView2 = (TextView)List.findViewById(R.id.pr_price);
ImageView imageview= (ImageView)List.findViewById(R.id.pr_img);
textView1.setText(pname[position].toString());
textView2.setText("Rs "+price[position] +" /-");
imageview.setImageResource(pmge[position]);
// TODO Auto-generated method stub
return List;
}
}
public class Product_Details extends Activity{
TextView name,price,specification,feature;
String nme;
SQLiteDatabase mydb;
String pname;
String prprice;
String pspec;
String pfeature;
Button add2cart,by_nw;
ImageView image;
ImageButton imgbtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.product_dtls);
image=(ImageView)findViewById(R.id.pr_img);
name = (TextView) findViewById(R.id.txtPr_name);
price = (TextView) findViewById(R.id.txtprice);
specification=(TextView)findViewById(R.id.txtPr_spec);
feature=(TextView)findViewById(R.id.txtPr_feature);
imgbtn=(ImageButton)findViewById(R.id.cartimg);
add2cart=(Button)findViewById(R.id.add2cart);
by_nw=(Button)findViewById(R.id.buy_nw);
DataBaseHandler dbh = new DataBaseHandler(this);
SQLiteDatabase db = dbh.getWritableDatabase();
Intent in = getIntent();
Bundle bn = in.getExtras();
Bundle bun=in.getExtras();
final String dtl=bun.getString("key");
nme = bn.getString("name");
while(cr.moveToNext())
{
String name = cr.getString(cr.getColumnIndex("pname"));
String pr1price = cr.getString(cr.getColumnIndex("pprice"));
String prspc=cr.getString(cr.getColumnIndex("pspec"));
String prfeature=cr.getString(cr.getColumnIndex("pfeature"));
pname = name;
prprice = pr1price;
pspec=prspc;
pfeature=prfeature;
}
name.setText(pname);
price.setText("Rs " +prprice + "/-");
specification.setText(pspec);
feature.setText(pfeature);
add2cart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
boolean incart=false;
String nm=name.getText().toString();
mydb=Product_Details.this.openOrCreateDatabase("addcart", MODE_PRIVATE, null);
mydb.execSQL("CREATE TABLE IF NOT EXISTS add2cart(usr TEXT,img BLOB,pnme TEXT,prate NUMERIC,pqty NUMERIC,ptotl NUMERIC)");
Cursor cur=mydb.rawQuery("select * from add2cart where pnme='"+nm+"' AND usr='"+dtl+"'",null);
if (cur.moveToFirst()){
String prdname=cur.getString(cur.getColumnIndex("pnme"));
if (nm.equals(prdname)){
add2cart.setText("Already in Cart");
incart=true;
}
}
if(incart==false){
mydb.execSQL("INSERT INTO add2cart (usr,pnme,prate)VALUES('"+dtl+"','"+nm+"','"+prprice+"')");
Toast.makeText(getApplicationContext(),"added to cart",Toast.LENGTH_SHORT).show();
}
}
});
}
}
产品详细信息。java
public class product_display extends Activity {
ListView prd_list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.product_dispay);
prd_list = (ListView) findViewById(R.id.list);
DataBaseHandler dbh = new DataBaseHandler(this);
Intent in=getIntent();
Bundle bundle=in.getExtras();
final String list=bundle.getString("key");
SQLiteDatabase db = dbh.getWritableDatabase();
Cursor cr = db.rawQuery("SELECT * FROM product", null);
final String[] pname = new String[cr.getCount()];
String[] price = new String[cr.getCount()];
int i = 0;
while(cr.moveToNext())
{
String name = cr.getString(cr.getColumnIndex("pname"));
String prprice = cr.getString(cr.getColumnIndex("pprice"));
pname[i] = name;
price[i] = prprice;
i++;
}
ListAdapter adapter = new ListAdapter(this, pname, price);
prd_list.setAdapter(adapter);
prd_list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String nme = pname[arg2];
// passing username from loginpage
Bundle bun = new Bundle();
bun.putString("key",list);
// passing product name as bundle
Bundle bn = new Bundle();
bn.putString("name",nme);
Intent in = new Intent(product_display.this, Product_Details.class);
in.putExtras(bun);
in.putExtras(bn);
startActivity(in);
}
});
}
}
public class ListAdapter extends BaseAdapter {
private final String[] pname;
private final String[] price;
Integer [] pmge ={R.drawable.candle1,R.drawable.candl3,
R.drawable.candl4,R.drawable.candl5,R.drawable.candl6,
R.drawable.lawn,R.drawable.sglc10,R.drawable.senson,R.drawable.thejus6669};
private Context mcontext;
public ListAdapter(Context c,String[] pname,String[] price){
mcontext=c;
this.pname=pname;
this.price=price;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return pname.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View List;
LayoutInflater mLayoutinflater=(LayoutInflater) mcontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(convertView==null){
List=new View(mcontext);
List=mLayoutinflater.inflate(R.layout.mylist, parent, false);
}
else{
List = (View)convertView;
}
TextView textView1 = (TextView)List.findViewById(R.id.pr_name);
TextView textView2 = (TextView)List.findViewById(R.id.pr_price);
ImageView imageview= (ImageView)List.findViewById(R.id.pr_img);
textView1.setText(pname[position].toString());
textView2.setText("Rs "+price[position] +" /-");
imageview.setImageResource(pmge[position]);
// TODO Auto-generated method stub
return List;
}
}
public class Product_Details extends Activity{
TextView name,price,specification,feature;
String nme;
SQLiteDatabase mydb;
String pname;
String prprice;
String pspec;
String pfeature;
Button add2cart,by_nw;
ImageView image;
ImageButton imgbtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.product_dtls);
image=(ImageView)findViewById(R.id.pr_img);
name = (TextView) findViewById(R.id.txtPr_name);
price = (TextView) findViewById(R.id.txtprice);
specification=(TextView)findViewById(R.id.txtPr_spec);
feature=(TextView)findViewById(R.id.txtPr_feature);
imgbtn=(ImageButton)findViewById(R.id.cartimg);
add2cart=(Button)findViewById(R.id.add2cart);
by_nw=(Button)findViewById(R.id.buy_nw);
DataBaseHandler dbh = new DataBaseHandler(this);
SQLiteDatabase db = dbh.getWritableDatabase();
Intent in = getIntent();
Bundle bn = in.getExtras();
Bundle bun=in.getExtras();
final String dtl=bun.getString("key");
nme = bn.getString("name");
while(cr.moveToNext())
{
String name = cr.getString(cr.getColumnIndex("pname"));
String pr1price = cr.getString(cr.getColumnIndex("pprice"));
String prspc=cr.getString(cr.getColumnIndex("pspec"));
String prfeature=cr.getString(cr.getColumnIndex("pfeature"));
pname = name;
prprice = pr1price;
pspec=prspc;
pfeature=prfeature;
}
name.setText(pname);
price.setText("Rs " +prprice + "/-");
specification.setText(pspec);
feature.setText(pfeature);
add2cart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
boolean incart=false;
String nm=name.getText().toString();
mydb=Product_Details.this.openOrCreateDatabase("addcart", MODE_PRIVATE, null);
mydb.execSQL("CREATE TABLE IF NOT EXISTS add2cart(usr TEXT,img BLOB,pnme TEXT,prate NUMERIC,pqty NUMERIC,ptotl NUMERIC)");
Cursor cur=mydb.rawQuery("select * from add2cart where pnme='"+nm+"' AND usr='"+dtl+"'",null);
if (cur.moveToFirst()){
String prdname=cur.getString(cur.getColumnIndex("pnme"));
if (nm.equals(prdname)){
add2cart.setText("Already in Cart");
incart=true;
}
}
if(incart==false){
mydb.execSQL("INSERT INTO add2cart (usr,pnme,prate)VALUES('"+dtl+"','"+nm+"','"+prprice+"')");
Toast.makeText(getApplicationContext(),"added to cart",Toast.LENGTH_SHORT).show();
}
}
});
}
}
编辑的代码
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
clas = (Integer)getListAdapter().getItem(arg2);
Intent in = new Intent(product_display.this, Product_Details.class);
in.putExtra("num", clas);
startActivity(in);
}
但如果图像是我的图像视图,如何将图像设置为我的图像视图
image.set ???
单击Listview
// Capture ListView item click
itemVie.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
resulta = data.get(position);
Intent intent = new Intent(context, SecondActivity.class);
intent.putExtra("albname", resulta.get(Portfolio.TAG_TITLE));
intent.putExtra("portimages",resulta.get(Portfolio.TAG_IMAGE));
context.startActivity(intent);
}
});
如果图像位于数组中,请确保数组的索引与从数据库获取的数据的索引相匹配(在将光标传递给适配器之前,可以通过将光标转换为列表来实现),然后在适配器的getview中,通过以下代码行获得图像: //我想你已经照我说的做了。 //position是列表中的第n个项目,item是从数据库获得的列表中的第n个对象(模型)。V是您返回的当前视图 V.setTag(图像阵列[位置]) 该V将作为onListItemClick方法中的参数传递给您 通过这行代码获取图像 //V是传递的视图参数
位图图像=V.getTag() 您可以通过调用适配器的
getItem
方法,从ListView
获取所选行项目对象,方法如下getListAdapter
prd_list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Integer class = (Integer)getListAdapter().getItem(arg2);
// pass this integer to the another activity and display there.
}
prd_list.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView arg0、视图arg1、整型arg2、长型arg3){
整型类=(整型)getListAdapter().getItem(arg2);
//将此整数传递给另一个活动并在那里显示。
}
OnListItemClick()在我的代码中没有被调用。怎么办。?像这样的实现用于你的活动公共类YourClass扩展活动实现OnItemClickListener请看一看我编辑的代码…我该怎么办?@paypaluser itemVie和数据是适配器参数。还有什么事吗?我对适配器概念不熟悉。你能编辑上面的代码部分吗使用我在代码中使用的变量,而不是itemVie和data。这样我就可以理解了