[英]ListView for option list in AlertDialog
我試圖在AlertDialog中插入一個列表視圖以顯示一些選項,但是構造函數出現錯誤:ArrayAdapter(this,R.layout.option_list,R.id.option,option_items); 它說不能解析構造函數。 代碼如下。
private void LongClick() {
myList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View viewClicked, int position, long IDinDB) {
Cursor res = myDb.GetRow(IDinDB);
if (res.moveToFirst()) {
long idDB = res.getLong(DatabaseHelper.ROWID);
}
String[] option_items = {"Delete"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.option_list, R.id.option, option_items);
optionList.setAdapter(adapter);
optionList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ViewGroup vg = (ViewGroup) view;
TextView txt = (TextView) vg.findViewById(R.id.option);
Toast.makeText(ViewActivity.this, txt.getText().toString(), Toast.LENGTH_LONG).show();
}
});
return true;
}
});
}
任何幫助將不勝感激。
編寫this
它表示要寫入的當前對象實例類。編寫new AdapterView.OnItemLongClickListener()
將創建一個新的匿名類,因此其方法內的單詞this
將引用此新創建的類對象。 ArrayAdapter需要構造函數中的context
實例,而不是AdapterView.OnItemLongClickListener
。 因此,您需要引用上下文對象。 你可以的:
a)從方法參數viewClicked
對象( viewClicked.getContext()
)
要么
b)作為ViewActivity.this
就像您在onItemClick
所做的onItemClick
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.