2017-03-01 56 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) { 
    } 
}; 

}