2012-08-25 2 views
1

목록에 대한 컨텍스트 메뉴를 만들려고합니다. ListView에 컨텍스트 메뉴를 구현 하시겠습니까?

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // setContentView(R.layout.activity_main); 
    content = new ArrayList<HashMap<String,String>>(); 

    ListView list = (ListView)findViewById(R.id.list); 
    registerForContextMenu(list); 
}  

registerForContextMenu(list);에 도달

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<ListView 
     android:id="@+id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
</ListView> 

, 나는 런타임 오류가 발생합니다.

android:id="@androidid/list"을 XML로 사용하는 경우 목록을 어떻게 참조할까요? ListView list = (ListView)findViewById(android.R.id.list);을 시도했지만 컨텍스트 메뉴에 등록 오류가 발생합니다. 코드 아래

+1

콘텐츠보기를 설정하지 않았으므로 목록이 null입니다. – Luksprog

+0

먼저 콘텐츠보기를 설정 한 다음 findViewByID –

+0

을 사용하지만 xml에 android : id = "@ + id/list" 을 사용하고 있기 때문에 오류가 발생합니다. android : id = "@ android : id/list"를 사용하려고 할 때 ListView list = (ListView) findViewById (android.R.id.list); , 난 오류가 발생하지 않지만 여전히 컨텍스트 메뉴 (나는 그것에 대한 onCreate 구현 않았다) – user1624426

답변

0

확인

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    lview3 = (ListView) findViewById(R.id.listView3); 

    adapter = new ListviewAdapter(this, month, desc, icons); 
     // set here your listview adapter value 
    lview3.setAdapter(adapter); 

    //for context menu 
    registerForContextMenu(lview3); 

} 

//start from here context menu// 

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
     ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    menu.setHeaderTitle("select"); 
    menu.add(0, v.getId(), 0, "Action 1"); 
    menu.add(0, v.getId(), 0, "Action 2"); 
    menu.add(0, v.getId(), 0, "Action 3"); 
} 


@Override 
public boolean onContextItemSelected(MenuItem item) { 
    if (item.getTitle() == "Action 1") { 
     // 
    } else if (item.getTitle() == "Action 2") { 
     // 
    } else { 
     return false; 
    } 
    return true; 
} 

행운을 빕니다.

관련 문제