在列表视图中无法单击项目

时间:2017-10-30 09:38:57

标签: android listview

您好我一直尝试使用数据库中的数据填充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上的说明执行此操作

感谢任何帮助!

1 个答案:

答案 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();

        }
    });
相关问题