Java 如何使Arraylist中的对象正确显示在Listview中?

Java 如何使Arraylist中的对象正确显示在Listview中?,java,android,listview,Java,Android,Listview,这是我第一次在这里问问题。抱歉,如果我的措辞不正确,请原谅我的编程经验不足 我一直在使用网站创建一个Listview,它显示“角色”对象的“名称”和“级别”属性。但是,由于某些原因,名称和级别从未出现,如图所示。我想解决这个问题 这是我的主要活动: package com.example.laptoproeland.mydndproject; import android.app.Activity; import android.os.Bundle; import android.widget

这是我第一次在这里问问题。抱歉,如果我的措辞不正确,请原谅我的编程经验不足

我一直在使用网站创建一个Listview,它显示“角色”对象的“名称”和“级别”属性。但是,由于某些原因,名称和级别从未出现,如图所示。我想解决这个问题

这是我的主要活动:

package com.example.laptoproeland.mydndproject;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import java.util.ArrayList;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ArrayList<Character> arrayOfCharacters = new ArrayList<>();

    arrayOfCharacters.add(new Character("Styx", 6));
    arrayOfCharacters.add(new Character("Gulthrak", 1));
    arrayOfCharacters.add(new Character("Edmund",  4));
    arrayOfCharacters.add(new Character("K'naan", 3));
    arrayOfCharacters.add(new Character("Helga", 1));

    CharactersAdapter adapter = new CharactersAdapter(this,     arrayOfCharacters);
    ListView listView = (ListView) findViewById(R.id.listViewMain);
    listView.setAdapter(adapter);

    }
}
package com.example.laptoproeland.mydndproject;
导入android.app.Activity;
导入android.os.Bundle;
导入android.widget.ListView;
导入java.util.ArrayList;
公共类MainActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList arrayOfCharacters=新的ArrayList();
添加(新字符(“Styx”,6));
添加(新字符(“Gultrak”,1));
添加(新字符(“Edmund”,4));
添加(新字符(“K'naan”,3));
添加(新字符(“Helga”,1));
CharactersAdapter=新的CharactersAdapter(此为arrayOfCharacters);
ListView ListView=(ListView)findViewById(R.id.listViewMain);
setAdapter(适配器);
}
}
这是我的适配器:

package com.example.laptoproeland.mydndproject;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import java.util.ArrayList;

public class CharactersAdapter extends ArrayAdapter<Character> {

public CharactersAdapter(Context context, ArrayList<Character>     arrayOfCharacters) {
    super(context, 0, arrayOfCharacters);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    Character character = getItem(position);

    if (convertView == null) {
        convertView =     LayoutInflater.from(getContext()).inflate(R.layout.character_item, parent,     false);
    }

    TextView tvName = (TextView) convertView.findViewById(R.id.tvName);
    TextView tvLevel = (TextView) convertView.findViewById(R.id.tvLevel);

    tvName.setText(character.name);
    tvLevel.setText(String.valueOf(character.level));

    return convertView;
    }
}
package com.example.laptoproeland.mydndproject;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.TextView;
导入java.util.ArrayList;
公共类CharactersAdapter扩展了ArrayAdapter{
公共字符适配器(上下文上下文,ArrayList arrayOfCharacters){
超级(上下文,0,arrayOfCharacters);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
Character=getItem(位置);
if(convertView==null){
convertView=LayoutInflater.from(getContext()).flate(R.layout.character\u项,父项,false);
}
TextView-tvName=(TextView)convertView.findViewById(R.id.tvName);
TextView tvLevel=(TextView)convertView.findViewById(R.id.tvLevel);
tvName.setText(character.name);
setText(String.valueOf(character.level));
返回视图;
}
}
这是我的个性项目:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
    android:id="@+id/tvName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/name"
    android:textSize="30sp"
    android:textStyle="normal|bold" />
<TextView
    android:id="@+id/tvLevel"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/level"
    android:layout_marginStart="10dp"
    android:textSize="30sp" />
</LinearLayout>


如果需要任何其他信息或代码来解决此问题,请告诉我。谢谢。

请共享character\u item.xml。很抱歉,等待了这么久。我度过了一个非常忙碌的周末。我已经用character\u item.xml更新了我的帖子。请共享character\u item.xml。很抱歉等待了这么久。我度过了一个非常忙碌的周末。我已经用character_item.xml更新了我的帖子。