2013-05-13 4 views
1

두 개의 버튼이있는 앱을 디자인하고 싶습니다. 그리고 우리는 각 버튼을 하나씩 누를 때, 어떤 내용의 목록을 보여줄 것입니다. 내가 butttons을 만드는 오전이와버튼의 목차를 표시하는 방법은 무엇입니까?

this.findViewById(R.id.UpdateList).setOnClickListener(this); 
this.findViewById(R.id.SettingsList).setOnClickListener(buttonclicked); 

이 들어

, 나는 다음과 같은 코드를 사용하고 있습니다. 클릭하면 다음을 사용하고 있습니다.

ArrayList<String> smsList = new ArrayList<String>(); 
public void onClick(View v) { 
    //My list content for first button 
} 

private OnClickListener buttonclicked = new OnClickListener() { 
    public void onClick(View v) { 
     //My list content for second button 
    } 
    ListView settingsListView = (ListView) findViewById(R.id.SETTINGSList); 
    settingsListView.setAdapter(new ArrayAdapter<String>((Context) buttonclicked , android.R.layout.simple_list_item_1, settingsList)); 

하지만 첫 번째 목록은 잘 작동하지만 두 번째 버튼을 누르면 강제로 중지되었습니다.

편집 로그 캣 :

05-13 19:44:46.988: E/AndroidRuntime(6806): FATAL EXCEPTION: main 
05-13 19:44:46.988: E/AndroidRuntime(6806): java.lang.ClassCastException: com.bitgriff.androidcalls.MainActivity$1 cannot be cast to android.content.Context 
05-13 19:44:46.988: E/AndroidRuntime(6806):atcom.bitgriff.androidcalls.MainActivity$1.onClick(MainAc??tivity.java:506) 
05-13 19:44:46.988: E/AndroidRuntime(6806):atandroid.view.View.performClick(View.java:3627) 
05-13 19:44:46.988: E/AndroidRuntime(6806):atandroid.view.View$PerformClick.run(View.java:14329) – 
+0

logcat에 넣을 예외를 게시하십시오. – FoamyGuy

+0

그래서 오류가 onClick 메서드 중 하나에 있습니다. 두 번째 버튼의 코드를 게시하십시오. 당신은 적절하게'this'를 사용합니다. – luxer

+0

두 번째 버튼 (this.findViewById (R.id.SettingsList) .setOnClickListener (buttonclicked);)을 누를 때 오류가 발생합니다. 이는 배열 어댑터에 BUttonClicked가있는 컨텍스트가 있지만 첫 번째 버튼에는 컨텍스트가 있습니다. 주요 활동 (this) ....과 같이 두 개의 목록을 만들 수 있습니까? 첫 번째 단추는 하나의 단추이고 두 번째 단추는 두 번째 단추입니다 ...? – Custadian

답변

3

OnClickListener를 어떤이에

settingsListView.setAdapter(new ArrayAdapter<String>((Context) buttonclicked, android.R.layout.simple_list_item_1, settingsList)) 

을)를 컨텍스트에 추가합니다.

settingsListView.setAdapter(new ArrayAdapter<String>((Context) buttonclicked , android.R.layout.simple_list_item_1, settingsList)); 

YourActivity.this을 대신 사용하십시오.

1

당신이 변경해야합니다 (이 행해져 Yout 오브젝트은 buttonClicked 캐스팅

settingsListView.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, settingsList)) 
관련 문제