Java 带有自定义适配器don'的列表视图;不显示所有项目
我正在做一个项目,其中包括一个有帮助的学生名单 问题是,加载列表视图时,并非所有元素都显示在其中,只有2个。 我想展示的是一个列表视图,每个文本视图上有2个微调器和1个文本视图,每个文本视图都有学生的de名称,这个数组是“noms” 主要活动Java 带有自定义适配器don'的列表视图;不显示所有项目,java,android,android-listview,android-adapter,Java,Android,Android Listview,Android Adapter,我正在做一个项目,其中包括一个有帮助的学生名单 问题是,加载列表视图时,并非所有元素都显示在其中,只有2个。 我想展示的是一个列表视图,每个文本视图上有2个微调器和1个文本视图,每个文本视图都有学生的de名称,这个数组是“noms” 主要活动 package com.example.llista_alumnes; import android.app.Activity; import android.content.Intent; import android.os.Bundle; impo
package com.example.llista_alumnes;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toolbar;
import java.util.ArrayList;
import java.util.Arrays;
public class MainActivity extends Activity {
public final static int REQUEST_CODE_B = 1;
public final static int REQUEST_CODE_C = 2;
private TextView tv1;
private ListView lv1;
private Spinner spinner ;
private Toolbar toolbar;
private Custom_listview_adapter adapter;
private ArrayList noms =new ArrayList <String> (Arrays.asList("Samuel", "Valentina", "Santiago", "Alejandro", "Valeria", "Benjamin",
"Gerardo", "Carlos", "David", "Sofía"));
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inicialitza();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the main; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.add_estudiants:
addEstudiant();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void inicialitza() {
tv1 = findViewById(R.id.tv1);
lv1 = findViewById(R.id.lv1);
toolbar = findViewById(R.id.toolbar);
setActionBar(toolbar);
adapter = new Custom_listview_adapter(this,R.layout.adapter_list_view, R.id.lv1, noms);
lv1.setAdapter(adapter);
}
void addEstudiant(){
Intent intent = new Intent(getBaseContext(), second_activity.class );
startActivityForResult(intent, REQUEST_CODE_B);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case REQUEST_CODE_B:
noms.add(data.getStringExtra("name"));
adapter.notifyDataSetChanged();
break;
}
}
}
列表视图适配器
package com.example.llista_alumnes;
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.spinner_array.length;
}
@Override
public Object getItem(int position){
return this.spinner_array[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;
}
}
package com.example.llista_alumnes;
导入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(){
返回this.spinner\u array.length;
}
@凌驾
公共对象getItem(int位置){
返回此.spinner_数组[位置];
}
@凌驾
公共长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数组);
旋转器。设置适配器(适配器);
返回视图;
}
}
在自定义列表视图中\u适配器更改
@Override
public int getCount(){
return this.spinner_array.length;
}
到
在所有这些之后,我做了所有必要的更改,但现在显示所有项目-1 列表视图适配器
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数组);
旋转器。设置适配器(适配器);
返回视图;
}
}
@Override
public int getCount(){
return this.data.size();
}
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;
}
}