我有一個主要活動,如:安卓:ListView控件與TextView的標題問題
public class TestActivity extends Activity{
List<String> users;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.usersview);
showList();
}
private void showList() {
users=new ArrayList<String>();
users.add("User1");
users.add("User2");
users.add("User3");
ListView lv=(ListView)findViewById(R.id.listv);
// TextView tv=(TextView)findViewById(R.id.welcomeMsg);
// lv.addHeaderView(tv);
lv.setAdapter(new ListArrAdapter(this, R.layout.userlist, users));
}
ArrayAdapter:
public class ListArrAdapter extends ArrayAdapter<String> {
private List<String> users;
private Context context;
private int listlayout;
public ListArrAdapter(Context context, int textViewResourceId,
List<String> users) {
super(context, textViewResourceId, users);
this.users = users;
listlayout = textViewResourceId;
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup viewGroup) {
String userName = users.get(position);
if (null == convertView) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(listlayout, null);
}
TextView firstName = (TextView) convertView
.findViewById(R.id.firstNameTv);
firstName.setText(userName);
return convertView;
}
}
usersview佈局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:text="@string/header"
android:id="@+id/welcomeMsg"
android:textSize="30dp"
android:layout_width="match_parent"
android:layout_height="match_parent"></TextView>
<ListView
android:layout_height="wrap_content"
android:id="@+id/listv"
android:layout_width="match_parent"></ListView>
</LinearLayout>
用戶列表佈局爲每個項目:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#EEFFEE"
android:orientation="vertical">
<TextView
android:id="@+id/firstNameTv"
android:textSize="20dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></TextView>
</LinearLayout>
我的問題是:
當我運行此代碼時只顯示歡迎消息(列表中的項目不顯示)。
當我取消對線
TextView tv=(TextView)findViewById(R.id.welcomeMsg);
lv.addHeaderView(tv);
在測試活動
,我得到了線以下異常
09-16 19:45:10.680: ERROR/AndroidRuntime(31044): Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
lv.setAdapter(new ListArrAdapter(this, R.layout.userlist, users));
我想有消息顯示用戶的列表 - 頂部。但是我遇到了這些問題。問題在哪裏,解決方案是什麼。
看起來像是由於「match_parent」引起的異常。 嘗試使用「wrap_content」。而不是「fill_parent」使用「wrap_content」行xml – Arslan
我試過。仍然無解。 – gtiwari333