我之前有以下代码。然后在我开始处理另一个活动(实现ListActivity并通过扩展ArrayAdapter为每行提供自定义视图)之后,我开始获取RuntimeException:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ezport/com.ezport.EzportActivity}: java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead
这是代码
package com.ezport;
import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
public class EzportActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View view_orders_button = findViewById(R.id.view_orders_button);
view_orders_button.setOnClickListener(this);
View submit_invoice_button = findViewById(R.id.submit_invoice_button);
submit_invoice_button.setOnClickListener(this);
View help_button = findViewById(R.id.help_button);
help_button.setOnClickListener(this);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.view_orders_button:
Intent order_intent = new Intent(this, OrderActivity.class);
startActivity(order_intent);
break;
case R.id.submit_invoice_button:
//Intent i = new Intent(this, )
break;
case R.id.help_button:
Intent help_intent = new Intent(this, HelpActivity.class);
startActivity(help_intent);
break;
}
}
}
我做错了什么?
答案 0 :(得分:1)
试试这个:
Button button1 = (Button)findViewById(R.id.button);
button1.setOnClickListener(this);
这对我有用,它可能会解决你的问题,看起来好的代码我不明白为什么它不会起作用。
答案 1 :(得分:0)
我只是遇到了同样的问题,但代码编译工作正常。
实际发生的是,我在XML布局文件中重新排序了项目。之后(Eclicpe)菜单 - 项目 - 清洁我再次没事了。
答案 2 :(得分:0)
您需要将其投射到特定的视图。假如你使用ImageButton而不是这个
View help_button = findViewById(R.id.help_button);
使用此
ImageButton help_button = (ImageButton)findViewById(R.id.help_button);