-1
我想在android中創建菜單。實際上,當我長按列表項時,我想顯示刪除圖標。 我想這樣。我建立一個my_menu.xml如何在android上點擊列表視圖創建菜單?
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/id_delete"
android:title="Delete"
android:icon="@drawable/delete"></item>
</menu>
然後,我創建列表視圖。我的列表視圖是視圖顯示,但它沒有顯示刪除圖標,當我長按排.Mean我想要顯示菜單選項,當我長按行。我能夠顯示列表..但菜單不顯示。
這裏是我的java代碼。
public class MainActivity extends AppCompatActivity {
ListView listView;
ArrayList arrayList = new ArrayList();
ArrayList selectionList = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.list_view);
Log.d("==", loadJSONFromAsset());
try {
JSONArray js = new JSONArray(loadJSONFromAsset());
for (int i = 0; i < js.length(); i++) {
JSONObject obj = js.getJSONObject(i);
arrayList.add(obj.getString("name"));
}
//adp=new CustomAddapter(getApplicationContext(),R.layout.list_view);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
listView.setAdapter(adapter);
listView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
listView.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
if (checked) {
selectionList.add(arrayList.get(position));
// arrayList.add(arr.)
}
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.my_menu, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
public String loadJSONFromAsset() {
String json = null;
try {
InputStream is = getAssets().open("data.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}
}