0

我正在开发我的第一个 android 应用程序,但面临一个难题。在我的应用程序中,有一个页面使用 listview 显示所有 sqlite 数据库记录。我希望微调器可以通过用户长按列表视图弹出,但它会强制关闭。

    private ListView.OnItemLongClickListener modItem = new ListView.OnItemLongClickListener()
    public boolean onItemLongClick(AdapterView<?> arg0, View v,int index, long arg3)
    {
        //I don't know what should I put in the parameter of the spinner constructor 
        sp_choice = new Spinner(<???>);
        //Same problem that I don't know what should I put in <???>
        ArrayAdapter<String> adt = new ArrayAdapter<String>(<???>,android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.choice_array));
        adt.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        sp_choice.setAdapter(adt);
        return true;
    } 
    };
4

2 回答 2

0

对不起,我无法理解你的问题...

让我看看我是否做对了...当长按列表视图的项目时,您想要一个包含选项或寄存器列表的对话框,或者您是否尝试从头开始实例化微调器?

如果你想打开一个选项列表,我会推荐某种 ListDialog。您可以使用以下代码对其进行实例化:

Builder dialog = new AlertDialog.Builder(getSherlockActivity());
dialog.setTitle(<TITLE>)
            .setItems(<YOUR_LIST>, <Click Listener>)
            .create().show();

如果不,

您想从代码中创建 Spinner 吗?你不是在使用xml资源吗?要从代码实例化 Spinner,您必须传递 Context 上的 Context,以及布局参数和微调器的模式(Dropdown 或 Dialog),以及适配器上带有您的元素的字符串 List... 似乎不过,对于初学者来说需要付出很多努力...如果没有必要,我建议您使用 xml 资源...

如果我没有明白,请澄清你的问题......

问候!

于 2013-06-16T04:58:16.230 回答
0

我认为最好使用弹出菜单或对话框进行弹出选择,而不是在运行时制作微调器。

对于对话框,它看起来像这样:

listView.setOnItemLongClickListener(new OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
        AlertDialog.Builder choiceDialogBuilder = new Builder(YourActivity.this);
        choiceDialogBuilder.setSingleChoiceItems(R.array.app_array, 0, new OnClickListener() {

         @Override
         public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(YourActivity.this, 
            getResources().getStringArray(R.array.app_array)[which], 
            Toast.LENGTH_SHORT).show();
        dialog.dismiss();
         }
    });
    choiceDialogBuilder.create().show();
    return true;
    } 
};
于 2013-06-16T05:03:34.180 回答