Java 构造函数ArrayAdapter<;字符串>;(SmsActivity,int,SmsActivity.SmsReceived)未定义??
下面的代码显示一个错误消息Java 构造函数ArrayAdapter<;字符串>;(SmsActivity,int,SmsActivity.SmsReceived)未定义??,java,android,list,listadapter,Java,Android,List,Listadapter,下面的代码显示一个错误消息 setListAdapter(new ArrayAdapter<String>(this, R.layout.main,mSmsReceiver)); 完整代码: import... .... public class SmsActivity extends ListActivity { private SmsReceived mSmsReceiver; public SmsActivity(){
setListAdapter(new ArrayAdapter<String>(this, R.layout.main,mSmsReceiver));
完整代码:
import...
....
public class SmsActivity extends ListActivity {
private SmsReceived mSmsReceiver;
public SmsActivity(){
mSmsReceiver = new SmsReceived();
setListAdapter(new ArrayAdapter<String>(this, R.layout.main,mSmsReceiver));
ListView listView = getListView();
listView.setTextFilterEnabled(true);
//---method is call when listitem is clicked---
listView.setOnItemClickListener(new OnItemClickListener() {edit later});
}
private class SmsReceived extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
//---get the SMS message passed in---
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
str += "SMS from " + msgs[i].getOriginatingAddress();
}
}
}
}
}
导入。。。
....
公共类SmsActivity扩展了ListActivity{
私人短信接收mSmsReceiver;
公共服务活动(){
mSmsReceiver=新的SmsReceived();
setListAdapter(新的ArrayAdapter(this,R.layout.main,mSmsReceiver));
ListView ListView=getListView();
setTextFilterEnabled(true);
//---方法是在单击listitem时调用的---
setOnItemClickListener(新的OnItemClickListener(){edit later});
}
私有类SmsReceived扩展广播接收器{
@凌驾
公共void onReceive(上下文、意图)
{
//---获取传入的SMS消息---
Bundle=intent.getExtras();
SmsMessage[]msgs=null;
字符串str=“”;
if(bundle!=null)
{
//---检索收到的SMS消息---
Object[]pdus=(Object[])bundle.get(“pdus”);
msgs=新SMS消息[PDU.length];
对于(int i=0;i要修复错误,您需要正确的对象类型作为适配器的参数。由于您告诉ArrayAdapter
它将具有String
数据类型,因此您必须提供类型为String
的数组或列表集合对象
更改此项:
private SmsReceived mSmsReceiver;
为此:
private String[] mSmsReceiver;
//or
private List<String> mSmsReceiver
私有字符串[]mSmsReceiver;
//或
私有列表mSmsReceiver
更改mSmsReceiver的数据类型后,请确保在将其推入阵列适配器之前对其进行初始化并填写一些数据
private String[] mSmsReceiver;
//or
private List<String> mSmsReceiver