如何显示按钮上的内容列表?

时间:2013-05-13 14:09:03

标签: android listview arraylist

我想设计一个应用程序,其中有两个按钮。当我们逐个按下每个按钮时,它会显示一些内容列表。

为此,我使用以下代码:

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

有了这个我正在创造butttons。点击,我正在使用:

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) );

但问题是我的第一个列表工作正常,但是当按下第二个按钮时,它会强行停止。

编辑 logcat:

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) –

2 个答案:

答案 0 :(得分:3)

您正在将对象buttonclicked(这是一个OnClickListener)转换为上下文。

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

改为使用YourActivity.this

答案 1 :(得分:1)

你需要改变这个:

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

到此:

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