Java 列表视图显示除最后一个项目之外的所有项目
完成所有这些之后,我对类进行了所有必要的更改以显示所有项,但现在显示所有项-1 这是列表视图的自定义适配器,问题是什么显示所有项目-1而不是所有项目,在添加1显示所有项目后,添加另一个显示所有项目加上前面添加的项目 列表视图适配器Java 列表视图显示除最后一个项目之外的所有项目,java,android,android-listview,custom-adapter,Java,Android,Android Listview,Custom Adapter,完成所有这些之后,我对类进行了所有必要的更改以显示所有项,但现在显示所有项-1 这是列表视图的自定义适配器,问题是什么显示所有项目-1而不是所有项目,在添加1显示所有项目后,添加另一个显示所有项目加上前面添加的项目 列表视图适配器 import android.app.Activity; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import java.util.ArrayList;
// aquest custom adapter es pel list_view no pel spinner
// aqui pots interectuar amb spinner usant al funcio del getview
public class Custom_listview_adapter extends ArrayAdapter {
Context context;
private String [] spinner_array = new String [] {"ha vingut","Ha faltat"};
private String [] notas_array = new String [] {"0","1","2","3","4","5","6","7","8","9","10"};
private int textResourceId;
private int resource;
private ArrayList<String> data;
public Custom_listview_adapter(Context context, int resource, int textViewResourceId, ArrayList data){
super(context,resource,textViewResourceId,data);
this.context = context;
this.textResourceId = textViewResourceId;
this.resource = resource;
this.data = data;
}
@Override
public int getCount(){
return this.data.size();
}
@Override
public Object getItem(int position){
return this.data.get(position);
}
@Override
public long getItemId( int position){
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
View view = convertView;
if (view == null){
view = ((Activity) context).getLayoutInflater().inflate( R.layout.adapter_list_view, null);
}
TextView textView = (TextView) view.findViewById(R.id.name);
Spinner spinner = (Spinner) view.findViewById(R.id.spinner);
Spinner notas = (Spinner) view.findViewById(R.id.notas);
textView.setText(data.get(position));
Custom_spinner_adapter adapter_notas = new Custom_spinner_adapter(context, R.layout.adapter_spinner,R.id.notas, this.notas_array);
notas.setAdapter(adapter_notas);
Custom_spinner_adapter adapter = new Custom_spinner_adapter(context, R.layout.adapter_spinner,R.id.spinner, this.spinner_array);
spinner.setAdapter(adapter);
return view;
}
}
导入android.app.Activity;
导入android.content.Context;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ListAdapter;
导入android.widget.Spinner;
导入android.widget.TextView;
导入java.util.ArrayList;
//aquest自定义适配器es pel列表\u视图无pel微调器
//aqui pots内部amb微调器usant al funcio del getview
公共类自定义_列表视图_适配器扩展ArrayAdapter{
语境;
私有字符串[]微调器数组=新字符串[]{“ha vingut”,“ha falta”};
私有字符串[]notas_数组=新字符串[]{“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”};
私有int-textResourceId;
私有int资源;
私有数组列表数据;
公共自定义_listview_适配器(上下文上下文、int资源、int textViewResourceId、ArrayList数据){
超级(上下文、资源、textViewResourceId、数据);
this.context=上下文;
this.textResourceId=textViewResourceId;
这个资源=资源;
这个数据=数据;
}
@凌驾
public int getCount(){
返回此.data.size();
}
@凌驾
公共对象getItem(int位置){
返回此.data.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=转换视图;
如果(视图==null){
视图=((活动)上下文).getLayoutFlater().inflate(R.layout.adapter\u list\u视图,null);
}
TextView TextView=(TextView)view.findViewById(R.id.name);
微调器微调器=(微调器)view.findViewById(R.id.Spinner);
微调器notas=(微调器)view.findViewById(R.id.notas);
setText(data.get(position));
Custom_spinner_adapter_notas=新的Custom_spinner_adapter(上下文,R.layout.adapter_微调器,R.id.notas,this.notas_数组);
notas.设置适配器(适配器\u notas);
自定义微调器适配器=新的自定义微调器适配器(上下文,R.layout.adapter\u微调器,R.id.spinner,this.spinner\u数组);
旋转器。设置适配器(适配器);
返回视图;
}
}
```
试着这样做:
适配器列表视图.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/adapter_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:id="@+id/textview1"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Spinner
android:id="@+id/notas1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
ModalAdapter.java
public class ModalAdapter extends ArrayAdapter<Modal> {
private String name;
private String[] spinnerArrays;
private String[] notasArrays;
private List<Modal> modalList;
public ModalAdapter(@NonNull Context context, @NonNull List<Modal> modalList) {
super(context, 0, modalList);
this.modalList = modalList;
}
@Override
public long getItemId(int position) {
return position;
}
@Nullable
@Override
public Modal getItem(int position) {
return modalList.get(position);
}
@Override
public int getCount() {
return modalList.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.adapter_list_view, parent, false);
}
TextView textView = convertView.findViewById(R.id.textview1);
Spinner spinner = convertView.findViewById(R.id.spinner1);
Spinner notas = convertView.findViewById(R.id.notas1);
// Get the data item for this position
Modal modal = getItem(position);
if (modal != null) {
name = modal.getName();
textView.setText(name);
spinnerArrays = modal.getSpinner();
spinner.setAdapter(new ArrayAdapter<>(getContext(), R.layout.support_simple_spinner_dropdown_item, spinnerArrays));
notasArrays = modal.getNotas();
notas.setAdapter(new ArrayAdapter<>(getContext(), R.layout.support_simple_spinner_dropdown_item, notasArrays));
}
// Return the completed view to render on screen
return convertView;
}
}
公共类ModalAdapter扩展了ArrayAdapter{
私有字符串名称;
私有字符串[]spinnerray;
私有字符串[]notasarray;
私人名单模仿者;
公共ModalAdapter(@NonNull上下文,@NonNull列表modalList){
超级(上下文,0,模态列表);
this.modalList=modalList;
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@可空
@凌驾
公共模式getItem(int位置){
返回modalList.get(位置);
}
@凌驾
public int getCount(){
返回modalList.size();
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
convertView=LayoutInflater.from(getContext()).flate(R.layout.adapter\u list\u视图,父视图,false);
}
TextView TextView=convertView.findViewById(R.id.textview1);
微调器微调器=convertView.findViewById(R.id.spinner1);
微调器notas=convertView.findViewById(R.id.notas1);
//获取此职位的数据项
模态=获取项目(位置);
if(模态!=null){
name=modal.getName();
textView.setText(名称);
spinnerrays=modal.getSpinner();
setAdapter(新的ArrayAdapter(getContext(),R.layout.support_simple_spinner_dropdown_item,spinnerrays));
notasarray=modal.getNotas();
setAdapter(新的ArrayAdapter(getContext(),R.layout.support_simple_spinner_dropdown_item,notasarray));
}
//返回要在屏幕上渲染的已完成视图
返回视图;
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
// item 1
private String[] spinner_array1 = new String[]{"a", "b"};
private String[] notas_array1 = new String[]{"0", "1"};
// item 2
private String[] spinner_array2 = new String[]{"c", "d"};
private String[] notas_array2 = new String[]{"3", "4"};
// item 3
private String[] spinner_array3 = new String[]{"e", "f"};
private String[] notas_array3 = new String[]{"5", "6"};
// item 4
private String[] spinner_array4 = new String[]{"g", "h"};
private String[] notas_array4 = new String[]{"7", "8"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// listView
ListView listView = findViewById(R.id.lv1);
// adapter
List<Modal> modalList = new ArrayList<>();
modalList.add(new Modal("item1", spinner_array1, notas_array1)); // item 1
modalList.add(new Modal("item2", spinner_array2, notas_array2)); // item 2
modalList.add(new Modal("item3", spinner_array3, notas_array3)); // item 3
modalList.add(new Modal("item4", spinner_array4, notas_array4)); // item 4
ModalAdapter adapter = new ModalAdapter(this, modalList);
// set listView adapter
listView.setAdapter(adapter);
}
}
public类MainActivity扩展了AppCompatActivity{
//项目1
私有字符串[]微调器_array1=新字符串[]{“a”,“b”};
私有字符串[]notas_array1=新字符串[]{“0”,“1”};
//项目2
私有字符串[]微调器_array2=新字符串[]{“c”,“d”};
私有字符串[]notas_array2=新字符串[]{“3”,“4”};
//项目3
私有字符串[]微调器_数组3=新字符串[]{“e”,“f”};
私有字符串[]notas_array3=新字符串[]{“5”,“6”};
//项目4
私有字符串[]微调器_数组4=新字符串[]{“g”,“h”};
私有字符串[]notas_array4=新字符串[]{“7”,“8”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//列表视图
ListView ListView=findViewById(R.id.lv1);
//适配器
List modalList=new ArrayList();
添加(新的模态(“item1”,微调器数组1,notas数组1));//项1
modalList.add(新模态(“item2”,微调器2,notas_array2));//项2
添加(新的模态(“item3”,微调器数组3,notas数组3));//项3
添加(新模态(“item4”,微调器数组4,notas数组4));//项4
ModalAdapter适配器=新的ModalAdapter(此,modalList);
//设置listView适配器
setAdapter(适配器);
}
}
试着这样做:
适配器列表视图.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/adapter_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:id="@+id/textview1"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Spinner
android:id="@+id/notas1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
ModalAdapter.java
public class ModalAdapter extends ArrayAdapter<Modal> {
private String name;
private String[] spinnerArrays;
private String[] notasArrays;
private List<Modal> modalList;
public ModalAdapter(@NonNull Context context, @NonNull List<Modal> modalList) {
super(context, 0, modalList);
this.modalList = modalList;
}
@Override
public long getItemId(int position) {
return position;
}
@Nullable
@Override
public Modal getItem(int position) {
return modalList.get(position);
}
@Override
public int getCount() {
return modalList.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.adapter_list_view, parent, false);
}
TextView textView = convertView.findViewById(R.id.textview1);
Spinner spinner = convertView.findViewById(R.id.spinner1);
Spinner notas = convertView.findViewById(R.id.notas1);
// Get the data item for this position
Modal modal = getItem(position);
if (modal != null) {
name = modal.getName();
textView.setText(name);
spinnerArrays = modal.getSpinner();
spinner.setAdapter(new ArrayAdapter<>(getContext(), R.layout.support_simple_spinner_dropdown_item, spinnerArrays));
notasArrays = modal.getNotas();
notas.setAdapter(new ArrayAdapter<>(getContext(), R.layout.support_simple_spinner_dropdown_item, notasArrays));
}
// Return the completed view to render on screen
return convertView;
}
}
公共类ModalAdapter扩展了ArrayAdapter{
公共关系
public class ModalAdapter extends ArrayAdapter<Modal> {
private String name;
private String[] spinnerArrays;
private String[] notasArrays;
private List<Modal> modalList;
public ModalAdapter(@NonNull Context context, @NonNull List<Modal> modalList) {
super(context, 0, modalList);
this.modalList = modalList;
}
@Override
public long getItemId(int position) {
return position;
}
@Nullable
@Override
public Modal getItem(int position) {
return modalList.get(position);
}
@Override
public int getCount() {
return modalList.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.adapter_list_view, parent, false);
}
TextView textView = convertView.findViewById(R.id.textview1);
Spinner spinner = convertView.findViewById(R.id.spinner1);
Spinner notas = convertView.findViewById(R.id.notas1);
// Get the data item for this position
Modal modal = getItem(position);
if (modal != null) {
name = modal.getName();
textView.setText(name);
spinnerArrays = modal.getSpinner();
spinner.setAdapter(new ArrayAdapter<>(getContext(), R.layout.support_simple_spinner_dropdown_item, spinnerArrays));
notasArrays = modal.getNotas();
notas.setAdapter(new ArrayAdapter<>(getContext(), R.layout.support_simple_spinner_dropdown_item, notasArrays));
}
// Return the completed view to render on screen
return convertView;
}
}
public class MainActivity extends AppCompatActivity {
// item 1
private String[] spinner_array1 = new String[]{"a", "b"};
private String[] notas_array1 = new String[]{"0", "1"};
// item 2
private String[] spinner_array2 = new String[]{"c", "d"};
private String[] notas_array2 = new String[]{"3", "4"};
// item 3
private String[] spinner_array3 = new String[]{"e", "f"};
private String[] notas_array3 = new String[]{"5", "6"};
// item 4
private String[] spinner_array4 = new String[]{"g", "h"};
private String[] notas_array4 = new String[]{"7", "8"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// listView
ListView listView = findViewById(R.id.lv1);
// adapter
List<Modal> modalList = new ArrayList<>();
modalList.add(new Modal("item1", spinner_array1, notas_array1)); // item 1
modalList.add(new Modal("item2", spinner_array2, notas_array2)); // item 2
modalList.add(new Modal("item3", spinner_array3, notas_array3)); // item 3
modalList.add(new Modal("item4", spinner_array4, notas_array4)); // item 4
ModalAdapter adapter = new ModalAdapter(this, modalList);
// set listView adapter
listView.setAdapter(adapter);
}
}