【发布时间】:2014-07-07 15:05:22
【问题描述】:
我有一个列表视图,其中包含三个列作为项目名称、数量、价格。我也有一个gridview按钮。现在我想要的是 单击gridview按钮时,该特定项目名称需要显示在listview中的itemname列中。
package com.example.test;
import java.util.ArrayList;
import java.util.List;
import android.R.string;
import android.support.v7.app.ActionBarActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends ActionBarActivity {
ListviewAdapter listviewAdapter;
List<Constant> constantlist = new ArrayList<Constant>();
ListView list;
String[] item;
String[] quantity;
String[] price;
//string getprice;
//String balaji = "shankar";
ArrayList<String> ar = new ArrayList<String>();
GridView grid;
static final String[] letters = new String[] {
"A", "B", "C", "D", "E",
"F", "G", "H", "I", "J",
"K", "L", "M", "N", "O",
"P", "Q", "R", "S", "T",
"U", "V", "W", "X", "Y", "Z"};
//private ArrayList<HashMap<String,String>> list;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
grid = (GridView) findViewById(R.id.gridView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, letters);
grid.setAdapter(adapter);
grid.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(getApplicationContext(),
((TextView) v).getText(), Toast.LENGTH_SHORT).show();
//TextView currentLetter = (TextView) v.findViewById(R.id.text1);
//currentLetter.setTextColor(Color.GREEN);
}
});
item = new String[] {"Pizza", "Burger", "Biriyani" };
quantity = new String[] {"1", "2", "3"};
price = new String[] {"10", "60", "60"};
for(int i=0;i<item.length;i++){
Constant constant = new Constant (item[i], quantity[i], price[i]);
constantlist.add(constant);
}
list= (ListView)findViewById(R.id.listview);
listviewAdapter = new ListviewAdapter(this, R.layout.listview_row, constantlist);
list.setAdapter(listviewAdapter);
}
}
}
下面是我的适配器类
package com.example.test;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class ListviewAdapter extends ArrayAdapter<Constant>{
Context context;
LayoutInflater inflater;
List<Constant> constantlist;
public ListviewAdapter(Context context, int resourceId,
List<Constant> worldpopulationlist) {
super(context, resourceId, worldpopulationlist);
//mSelectedItemsIds = new SparseBooleanArray();
this.context = context;
this.constantlist = worldpopulationlist;
inflater = LayoutInflater.from(context);
}
private class ViewHolder{
TextView item;
TextView quantity;
TextView price;
}
public View getView(int position, View view, ViewGroup parent){
final ViewHolder holder;
if(view == null){
holder = new ViewHolder();
view=inflater.inflate(R.layout.listview_row, null);
holder.item = (TextView) view.findViewById(R.id.txt_item);
holder.quantity = (TextView) view.findViewById(R.id.txt_quantity);
holder.price = (TextView) view.findViewById(R.id.txt_price);
view.setTag(holder);
}else{
holder = (ViewHolder) view.getTag();
}
holder.item.setText(constantlist.get(position).getItem());
holder.quantity.setText(constantlist.get(position).getQuantity());
holder.price.setText(constantlist.get(position)
.getPrice());
return view;
}
public List<Constant> getWorldPopulation() {
return constantlist;
}
}
【问题讨论】:
标签: java android listview gridview