저는 안드로이드에서 초보자이고 컨텍스트 메뉴에 대해 배우고 있지만, 컨텍스트 메뉴에 대해 서핑을 한 후에는 Adapter와 Inflater에서 조금 혼란스러워합니다. 나는 Inflater를 사용하여 1 개의 프로그램과 1 개의 프로그램을 보았다. 그래서, 어떻게 도와주세요/어댑터와 Inflater를 언제 사용하십시오.어댑터 사용시기와 인플레이터 사용시기
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Countries = getResources().getStringArray(R.array.Game);
ListView list = (ListView) findViewById(R.id.list);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.listitem, Countries);
list.setAdapter(adapter);
registerForContextMenu(list);
}
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
if (v.getId() == R.id.list) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
menu.setHeaderTitle(Countries[info.position]);
String[] menuItems = getResources().getStringArray(
R.array.contextmenu);
for (int i = 0; i < menuItems.length; i++) {
menu.add(Menu.NONE, i, i, menuItems[i]);
}
}
}
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item
.getMenuInfo();
int menuItemIndex = item.getItemId();
String[] menuItems = getResources().getStringArray(R.array.contextmenu);
String[] menuItems1 = getResources().getStringArray(R.array.game);
String menuItemName = menuItems[menuItemIndex];
String listItemName = menuItems1[info.position];
// selectedName = nameList[(int) info.id];
TextView text = (TextView) findViewById(R.id.textView1);
text.setText(String.format("Selected %s for item %s", menuItemName,
listItemName));
return true;
}
. 답장을 보내 주셔서 감사합니다. 하지만 나는 열이있다. 이것에 관해서는 oncreatecontextmenu() 메소드 예제에서 1 개는 어댑터를 사용하고 1 개는 inflater를 사용합니다. 그럼,이 둘 모두에서 사용하는 것이 가장 좋습니다. 불편을 끼쳐 드려 죄송합니다. 실제로 몇 줄의 코드를 추가하는 것을 잊어 버렸습니다.하지만 지금은 제가 추가되었습니다. – makjal
@makjal [XML 리소스 파일 사용] (http://stackoverflow.com/a/11960645/687315) 자바 코드로 객체를 직접 생성하는 대신 첫 번째 예제와 같은 레이아웃을 사용합니다. – user113215