【发布时间】:2019-03-17 04:39:02
【问题描述】:
我正在尝试为我的 ListView 创建一个 ArrayAdapter 以显示联系人列表,但它表示它无法解析数组适配器的构造函数。请有人帮助我并告诉我是否需要创建自定义适配器。我也尝试过 ArrayAdapter> 但这也不能解决构造函数。这是我的代码:
package com.example.contactmanagement;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private static final int ADDCONTACT_REQUEST_CODE = 0;
int idCounter = 0;
List<Bundle> contacts = new ArrayList<Bundle>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
Bundle bundle = data.getExtras();
contacts.add(bundle);
String fname = bundle.getString("fname");
String lname = bundle.getString("lname");
String full_name = fname + " " + lname;
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
LinearLayout layout = (LinearLayout) findViewById(R.id.contactList);
ArrayAdapter<List> itemsAdapter = new ArrayAdapter<List>(this, R.layout.textview, contacts);
ListView listView = (ListView) findViewById(R.id.lv);
listView.setAdapter(itemsAdapter);
/*
TextView textView = new TextView(this);
textView.setLayoutParams(params);
textView.setText(fname +" " + lname);
textView.setId(idCounter);
idCounter++;
textView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent contactDetails = new Intent("com.example.contactmanagement.ContactDetails");
int counterID = v.getId();
Bundle bundleToPass = contacts.get(counterID);
contactDetails.putExtras(bundleToPass);
startActivity(contactDetails);
}
});
layout.addView(textView);
*/
}
public void onClick(View view) {
Intent intent = new Intent(this, AddContact.class);
startActivityForResult(intent, ADDCONTACT_REQUEST_CODE);
}
}
【问题讨论】:
-
嘿,试试你的代码,将数组适配器声明为 string.ArrayAdapter
itemsAdapter = new ArrayAdapter (this, android.R.layout.simple_list_item_1, items);
标签: java android android-listview android-arrayadapter