您好我一直尝试使用数据库中的数据填充listview
到目前为止我已成功创建listview
。但现在我无法点击任何项目listview
是完全静态的我所能做的就是滚动它
下面是代码:
public class List_view extends AppCompatActivity {
ArrayList<String> throwlist = new ArrayList<String>();
ListView Trainlist;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view);
Trainlist=(ListView)findViewById(R.id.station_list);
SQLiteDatabase db = openOrCreateDatabase("Station11.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
try{
Cursor data_fetch = db.rawQuery("Select Station_name From Station", null);
String[] station_array = new String[data_fetch.getCount()];
int i= 0;
while (data_fetch.moveToNext()) {
String name = data_fetch.getString(data_fetch.getColumnIndex("Station_name"));
station_array[i] = name;
Log.d("STATION_GET!","Retrieved station " + station_array[i]);
//Toast.makeText(List_view.this, "Retrieved station " + station_array[i] , Toast.LENGTH_SHORT).show();
if(throwlist.contains(name)) {
}
else {
throwlist.add(name);
}
}
data_fetch.close();
}catch(Exception e)
{
Toast.makeText(List_view.this, "An Error occured Retrieving your data" , Toast.LENGTH_LONG).show();
}
try {
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1,throwlist);
Trainlist.setAdapter(arrayAdapter);
}catch (Exception e){
Log.d("Error in listview ",e.toString());
Toast.makeText(List_view.this, "Listview Error" , Toast.LENGTH_LONG).show();
}
try {
Trainlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String val = (String) parent.getItemAtPosition(position);
String select_data = ((TextView) view).getText().toString();
Log.d("Inside Function!!! ",null);
Toast.makeText(List_view.this, val + " Selected", Toast.LENGTH_SHORT).show();
}
});
}catch(Exception e)
{
Toast.makeText(List_view.this,"Error!", Toast.LENGTH_SHORT).show();
}
}
}
我一直按照here上的说明执行此操作
感谢任何帮助!
答案 0 :(得分:1)
删除日志,尝试以下操作
它导致NullPointerException
java.lang.NullPointerException: println needs a message
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String val = (String) parent.getItemAtPosition(position);
String select_data = ((TextView) view).getText().toString();
Toast.makeText(getApplicationContext(), val + " Selected", Toast.LENGTH_SHORT).show();
}
});