我有一个Java类,它包含有关用户(名称,年龄,类,标记)的信息。我试图创建一个列表视图来显示不同的用户(只有他们的名字和年龄)。ListView在Android中不显示任何内容
出于某种原因,不显示列表视图。为什么?
MainActivity.java:为main_activity
public class UserAdapter extends BaseAdapter {
private Context currentContext;
private ArrayList<User> userList;
public static class ViewHolder {
TextView uName;
TextView uAge;
}
public UserAdapter(Context context, ArrayList<User> user){
currentContext = context;
userList = user;
}
public View getView(int i, View view, ViewGroup viewGroup) {
//If view not created, inflate the view
ViewHolder viewHolder;
if(view == null){
viewHolder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater) currentContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.user_item, null);
//attach the ViewHolder to this view
viewHolder = new ViewHolder();
viewHolder.userName = (TextView) view.findViewById(R.id.uNameTextView);
viewHolder.userAge = (TextView) view.findViewById(R.id.uAgeTextView);
view.setTag(viewHolder);
}
else{
//View already created
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.uName.setText(userList.get(i).getUserName());
viewHolder.uAge.setText(userList.get(i).getUserAge());
return view;
}
XML文件:
<ListView
android:id="@+id/userListView"
style="@style/Widget.AppCompat.ListView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="10dp"
android:visibility="visible" />`
XML为每个用户列表项:
public class MainActivity extends AppCompatActivity {
private ListView listView;
private UserAdapter userAdapter;
private ArrayList<User> userList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userList = new ArrayList<>();
DefaultList(); //calls default list function, with dummy values
listView = (ListView) findViewById(R.id.userListView);
//Associating the adapter with the monster list
userAdapter = new userAdapter(this, userList);
listView.setAdapter(userAdapter);
}
public boolean onCreateOptionsMenu(Menu menu){
return true;
}
//Initializes the list view with some default values, for testing purposes only
private void DefaultList(){
userList.add(new User("Nat", 17, "MBS", 4, "98"));
userList.add(new User("Dave", 27, "BIS", 1, "54"));
userList.add(new User("Gray", 21, "BIS", 2, "51"));
userList.add(new User("John", 20, "BIS", 1, "76"));
}
}
列表视图定义适配器
<TextView
android:id="@+id/uNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp"
android:text="Name" />
<TextView
android:id="@+id/uAgeTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/uNameTextView"
android:layout_below="@+id/uNameTextView"
android:text="Age" />
我正在使用Android Studio。
Android监视器上的任何错误? – HaroldSer
@ScottS在监视器上没有错误。当我运行应用程序时,它显示一个空白屏幕。 – user100000001