Java 如何使Arraylist中的对象正确显示在Listview中?
这是我第一次在这里问问题。抱歉,如果我的措辞不正确,请原谅我的编程经验不足 我一直在使用网站创建一个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
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更新了我的帖子。