У меня есть этот код:
public class MyActivity extends ListActivity implements OnClickListener {
private ArrayList<String> listItems = new ArrayList<String>();
ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setAdapter();
this.bindButtons();
}
private void setAdapter() {
setContentView(R.layout.siteactivity);
adapter=new ArrayAdapter<String>(this,
R.layout.siteitem,
listItems);
setListAdapter(adapter);
}
private void bindButtons() {
findViewById(R.id.buttonPrevious).setOnClickListener(this);
findViewById(R.id.buttonNext).setOnClickListener(this);
}
// ...
}
с этим макетом:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" android:id="@+id/siteActivity">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/navigation">
<Button
android:text="<="
android:textSize="12dp"
android:id="@+id/buttonPrevious"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
<Button
android:text="=>"
android:textSize="12dp"
android:id="@+id/buttonNext"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/navigation"
android:layout_above="@+id/transport_selection"
/>
</RelativeLayout>
Обратите внимание на android:id="@android:id/list"
ListView.Если я заменю его на android:id="@+id/list"
, моя сила активности закроется, потому что мой «контент должен иметь ListView с атрибутом id« android.R.id.list »», но я думаю, это ожидаемое поведение.
Теперь я хочу добавить контекстное меню к элементам ListView.Я попробовал registerForContextMenu(findViewById(R.id.list));
, но это не работает, из-за android:id
.
Тогда, как я могу добавить контекстное меню?