我是一个新的编程Android,我想使用无数组参数的构造函数阵列适配器,但是如果它不给出结果。
我想在构造器数组适配器中使用TextView
参数。
此代码有效:
public class coustemtest extends ArrayAdapter {
String x;
int resours;
String [] cu;
public coustemtest(Context context, int resource, String[]z) {
super(context, resource, z);
resours=resource;
cu=z;
}
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater=(LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=layoutInflater.inflate(resours,parent,false);
TextView textView=(TextView)convertView.findViewById(R.id.textView);
textView.setText(cu[position]);
return convertView;
}
}
public class MainActivity extends AppCompatActivity {
EditText editText;
ListView listView;
coustemtest co;
List<String> list;
String [] x ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText=(EditText)findViewById(R.id.editText);
listView=(ListView)findViewById(R.id.hi);
list=new ArrayList<String>();
x=new String[]{"mohmmod amed ","yes man ","no women "};
}
public void add(View view) {
String y=editText.getText().toString();
list.add(y);
co=new coustemtest(this,R.layout.coustem2,yz());
listView.setAdapter(co);
}
public String[] yz()
{
String [] hussen = new String[list.size()];
for (int z=0;z<list.size();z++){
hussen[z]=list.get(z);}
return hussen;
}
}
此代码不起作用:
public class coustemtest extends ArrayAdapter {
String x;
int resours;
String [] cu;
public coustemtest(Context context, int resource, String y) {
super(context, resource);
resours=resource;
x=y;
}
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater=(LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView=layoutInflater.inflate(resours,parent,false);
TextView textView=(TextView)convertView.findViewById(R.id.textView);
textView.setText(x);
return convertView;
}
}
public class MainActivity extends AppCompatActivity {
EditText editText;
ListView listView;
coustemtest co;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText=(EditText)findViewById(R.id.editText);
listView=(ListView)findViewById(R.id.hi);
}
public void add(View view) {
String y=editText.getText().toString();
co=new coustemtest(this,R.layout.coustem2,y);
listView.setAdapter(co);
}
您可以创建一个字符串数组并在构造函数中传递类似的内容。
String[] items = "assign some data here"
ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);