你好朋友我有問題項目點擊聽衆ListView
在android ...我的代碼告訴我正確的位置的項目,但不正確的名稱我需要幫助...在Android新的Im ...android listview item點擊
這裏是我的代碼
public void listView(){
listView = (ListView)findViewById(R.id.list_View);
final String[][] projections = {{Food.NewDishInfo.DISH_CALORIE, Food.NewDishInfo.DISH_FAT}};
final String selection = Food.NewDishInfo.DISH_NAME+" LIKE ?";
String[] selection_args = new String[]{"dish_name"};
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.row_layout,selection_args);
listView.setAdapter(adapter);
listView.setOnItemClickListener(
new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String selection_args = "You selected " +
String.valueOf(adapterView.getItemAtPosition(i));
Toast.makeText(DataListActivity.this,"position : " + i +selection_args, Toast.LENGTH_LONG).show();
}
});
}
這是我的名單適配器代碼.....
public class ListDataAdapter extends ArrayAdapter {
List list = new ArrayList();
public ListDataAdapter(Context context, int resource) {
super(context, resource);
}
static class LayoutHandler{
TextView name,calorie,fat;
}
@Override
public void add(Object object) {
super.add(object);
list.add(object);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
LayoutHandler layoutHandler;
if (row == null)
{
LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = layoutInflater.inflate(R.layout.row_layout,parent,false);
layoutHandler = new LayoutHandler();
layoutHandler.name = (TextView)row.findViewById(R.id.text_dish_name);
layoutHandler.calorie = (TextView)row.findViewById(R.id.text_dish_calorie);
layoutHandler.fat = (TextView)row.findViewById(R.id.text_dish_fat);
row.setTag(layoutHandler);
}
else
{
layoutHandler = (LayoutHandler) row.getTag();
}
DataProvider dataProvider = (DataProvider)this.getItem(position);
layoutHandler.name.setText(dataProvider.getName());
layoutHandler.calorie.setText(dataProvider.getCalorie());
layoutHandler.fat.setText(dataProvider.getFat());
return row;
}
}
datalistactivity代碼...
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class DataListActivity extends ActionBarActivity {
ListView listView;
SQLiteDatabase sqLiteDatabase;
FoodDbHelper foodDbHelper;
Cursor cursor;
ListDataAdapter listDataAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.data_list_layout);
listView();
listView = (ListView)findViewById(R.id.list_View);
listDataAdapter = new ListDataAdapter(getApplicationContext(),R.layout.row_layout);
listView.setAdapter(listDataAdapter);
foodDbHelper = new FoodDbHelper(getApplicationContext());
sqLiteDatabase = foodDbHelper.getReadableDatabase();
cursor = foodDbHelper.getInformations(sqLiteDatabase);
if (cursor.moveToFirst())
{
do {
String name,calorie,fat;
name = cursor.getString(0);
calorie = cursor.getString(1);
fat = cursor.getString(2);
DataProvider dataProvider = new DataProvider(name,calorie,fat);
listDataAdapter.add(dataProvider);
}while (cursor.moveToNext());
}
}
public void listView(){
List list = new ArrayList();
ArrayListt ArrayListt = null;
listView = (ListView)findViewById(R.id.list_View);
final String ArrayListtt = new String((char[]) null);
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.row_layout, Integer.parseInt(ArrayListtt));
listView.setAdapter(adapter);
listView.setOnItemClickListener(
new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String ArrayListtt = "You selected " +
String.valueOf(adapterView.getItemAtPosition(i));
Toast.makeText(DataListActivity.this, "position : " + i + ArrayListtt, Toast.LENGTH_LONG).show();
}
});
}
}
你好兄弟如何在hashmap中添加velue dataProvider.setSelected(checkBox.isChecked());這行添加我的所有簽入dataprovider,然後我可以通過按鈕訪問它...但我怎麼能在hashmap中添加值 –
檢查我下面的複選框代碼 –
聲明此行最終HashMap selectedItems = new HashMap ();在Activity類中,不需要final。以下就足夠了 HashMap selectedItems = new HashMap (); –
Amsheer