2017-03-01 30 views
2

我对android来说很新,并且在可点击列表视图上工作,我遇到的问题是,除了没有显示吐司,也没有在终端窗口中显示输出,每个工作都正常。 我的listView没有任何图像子,它只是文本列表形式。因此,没有焦点问题。 这里是我的代码可点击的listView不工作

public class FavoritePage extends AppCompatActivity implements OnItemClickListener { 

private ListView lv; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_favorite_page); 
    DataBaseHandler db = new DataBaseHandler(this); 
    db.add_activity(""); 
    lv = (ListView) findViewById(R.id.listView); 
    ArrayAdapter<String> arr2 = new ArrayAdapter<String>(getApplicationContext(), R.layout.simple_colum, db.getalllist()); 
    lv.setAdapter(arr2); 
    db.del_activity(""); 


} 


@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    String data = (String) parent.getItemAtPosition(position); 
    Toast.makeText(getApplicationContext(), "This is my Toast message!", 
      Toast.LENGTH_LONG).show(); 
    System.out.println("***************************************************************" + data); 
}} 

任何想法,为什么会这样..?

+0

好了,首先你要监听器设置到ListView。类似于:'lv.setOnItemClickListener(this)'。把它添加到你的'findViewById()'代码下面的onCreate() – mt0s

+1

谢谢,它的工作就像一个魅力,下面写下你的答案,以便我可以标记它 –

回答

1

那么,首先你必须将侦听器设置为listView。类似于:lv.setOnItemClickListener(this)

将此项添加到您的onCreate()正好在您的findViewById()代码的下方。

+0

谢谢,它的工作。 –

1

我想下面的代码可以帮助你: -

lv.setOnItemClickListener(new OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 

        String data = (String) parent.getItemAtPosition(position); 
    Toast.makeText(getApplicationContext(), "This is my Toast message!", 
      Toast.LENGTH_LONG).show(); 
    System.out.println("***************************************************************" + data); 
      }); 
1

你错过设置onItemClickListener

添加此行lv.setOnItemClickListener(this)在此行后lv = (ListView) findViewById(R.id.listView);onCreate方法中。

此外,我建议在进行Java编程时使用camelCase style

1

而是在活动实施OnItemClickListener的,你可以尝试像下面

public class FavoritePage extends AppCompatActivity { 

private ListView lv; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_favorite_page); 
    DataBaseHandler db = new DataBaseHandler(this); 
    db.add_activity(""); 
    lv = (ListView) findViewById(R.id.listView); 
    ArrayAdapter<String> arr2 = new ArrayAdapter<String>(getApplicationContext(), R.layout.simple_colum, db.getalllist()); 
    lv.setAdapter(arr2); 
    lv.setOnItemClickListener(clickListener); 
    db.del_activity(""); 
} 

private AdapterView.OnItemClickListener clickListener = new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    } 
}; 

}