2016-12-12 22 views
0

私は基本的なアプリケーションをいくつか行っているのでAndroidの新しいものですが、私はJavaについてよく知っています。私は、画面の上部に1つのペア接続(IPアドレスポート)とListViewコントロールのすべての既知の接続のを生成する2つの属性を持つLoginActivityを提供しなければならないアプリケーションに取り組んできました(以前は時折使用されていた)ボタン "Connect"の下にあります。ListView項目のアクション(追加/編集/削除)の実装

Snippet

リストビューで特定のアイテムに少し長い指に保持したときに私の質問は、など/編集を追加/削除のようないくつかのアクションを実装する方法を、のですか?既に知られている接続のの変更/削除のためのメニューを作る方法

は、ここで私はすでにListViewコントロールのためになったコードです:

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    if (v.getId()==R.id.list_view) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu_list, menu); 
    } 
} 

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); 
    switch(item.getItemId()) { 
     case R.id.edit: 
      //implement here 
      return true; 
     case R.id.delete: 
      //implement here 
     default: 
      return super.onContextItemSelected(item); 
    } 
} 
+0

ContextMenuを使用することは確かに有効なオプションですので、私の意見では時代遅れです。 3つのボタンでレイアウトを作成し、longclickで選択したアイテムにオーバーレイするか、[このライブラリ](https://github.com/AAkira/ExpandableLayout)のようなものを使用してこのレイアウトを展開してください。これはちょっとした提案ですが、ContextMenuはまだ選択肢です。 –

答えて

0

たぶん、あなたは、ListViewのためにあなたのコンテキストメニューを登録し忘れてしまいましたか?

registerForContextMenu(lv); 

EDIT

OK、今私は理解しています。おそらく、これは役に立ちます:

case R.id.delete: 

    int index = info.position; 
    listView.remove(index); 
    listViewAdapter.notifyDataSetChanged(); 
+0

私はあなたが理解していないと思う、私はすでにそれを行っているが、興味のポイントは "//ここに実装する"行だ –

+0

あなたの時間をありがとう、しかし私はすでに削除の手順を知っていた、私は尋ねているEDITアクションでウィンドウを作る方法 –

+0

R.id.editでカスタムレイアウトでAlertDialogを作成するhttp://stackoverflow.com/questions/22655599/alertdialog-builder-with-custom-layout-and-edittext-cannot-access- – lesniak

関連する問題