将项目添加到LisView
问题描述:
我制作了一个程序,您可以将人员添加到等待列表中并将其删除。
我使用LinkedList来存储人员。
这一切工作正常,这里的代码添加到等待名单:将项目添加到LisView
package example.warteschlange;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.util.LinkedList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private TextView liste;
private List<String> ls;
private Button hinz,aufr;
private EditText edT;
private String t;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
hinz = (Button) findViewById(R.id.hinz);
hinz.setEnabled(true);
aufr = (Button) findViewById(R.id.aufr);
aufr.setEnabled(true);
ls = new LinkedList<String>();
edT = (EditText) findViewById(R.id.edT);
edT.setEnabled(true);
liste = (TextView) findViewById(R.id.liste);
liste.setText("Liste");
hinz.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
t = edT.getText().toString();
if(t.isEmpty()==true){
edT.setError("Feld darf nicht leer sein!");
}else {
ls.add(t);
liste.setText(ls.toString());
edT.getText().clear();
edT.setHint("Name eingeben");
}
}
});
aufr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ls.remove(ls.get(ls.size()-1));
if(ls.isEmpty()==true){
liste.setText("Fertig mit der Warteschlange");
aufr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
return;
}
liste.setText(ls.toString());
}
});
}
}
但是我想表明的等待名单(这是在一个TextView所示的时刻)在ListView。
有谁知道我该如何做到这一点,以及如何添加项目到这个视图?
答
您将需要使用ArrayAdapter
类。你可以参考下面的代码:
String[] data = {
"Name 1",
"Name 2",
"Name 3",
"Name 4",
"Name 5",
};
List<String> waitlistNames = new ArrayList<String>(Arrays.asList(data));
使用上面的数据实例化ArrayAdapter
:
mWaitListAdapter = new ArrayAdapter<String>(
getActivity(),
R.layout.list_item_names,
R.id.list_item_names_textview, // The ID of the textview to populate.
//This is inside your list_item_names layout.
waitlistNames);
最后,
ListView listView = (ListView) rootView.findViewById(R.id.listview_waitlist);
listView.setAdapter(mWaitListAdapter);
好,不过我已经存储在一个LinkedList的人,我想在“列表”中显示此人(每个人在新的林中) –
waitlistNames可以是ArrayList或LinkedList,你应该没问题。 – user1506104
它说“无法解析构造函数”ArrayList(java.util.List>) –