簡體   English   中英

AlertDialog中的選項列表的ListView

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM