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();

そうでない場合は、

コードからスピナーを作成しますか? xml リソースを使用していませんか? コードからスピナーをインスタンス化するには、レイアウト パラメータとスピナーのモード (ドロップダウンまたはダイアログ)、およびアダプタの要素を含む文字列 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 に答える