0
当我将新项目添加到列表视图时,我的上一个项目消失。它只显示最新的项目。Listview上一个项目在新项目上消失添加在按钮上点击
我有两个编辑视图,姓名和电子邮件。和一个按钮创建播放器。在按钮点击时,名称和电子邮件应添加为列表视图中的一个项目(2行)。
请帮忙。
问候
CreateTeamActivity.java
package com.recscores.android;
import java.util.ArrayList;
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TableLayout;
import android.widget.Toast;
public class CreateTeamActivity extends Activity implements OnClickListener {
Button addPlayer;
Button createPlayer;
LinearLayout view_createPlayer;
TableLayout numberPad;
EditText Email;
EditText Name;
EditText teamname;
ListView Roster;
private CustomAdapter adapter;
private ArrayList<PlayerInfo> fetch = new ArrayList<PlayerInfo>();
private PlayerInfo info = new PlayerInfo();
private ListView lv;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create_team);
addPlayer = (Button)findViewById(R.id.addplayer);
createPlayer = (Button)findViewById(R.id.createplayer);
Email = (EditText)findViewById(R.id.email);
Name = (EditText)findViewById(R.id.name);
lv = (ListView)findViewById(android.R.id.list);
adapter = new CustomAdapter(CreateTeamActivity.this,
android.R.id.list,
fetch);
lv.setAdapter(adapter);
createPlayer.setOnClickListener(this);
}
public void onClick(View v) {
switch(v.getId()){
case R.id.createplayer: /** Create Player */
info.SetName(Name.getText().toString());
info.SetEmail(Email.getText().toString());
fetch.add(info);
counter++;
// lv.invalidateViews();
adapter.notifyDataSetChanged();
//Thread.sleep(2000);
break;
}
}
}
CustomAdapter.java
package com.recscores.android;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class CustomAdapter extends ArrayAdapter<PlayerInfo>{
private ArrayList<PlayerInfo> entries;
private Activity activity;
public CustomAdapter(Activity a, int textViewResourceId, ArrayList<PlayerInfo> entries) {
super(a, textViewResourceId, entries);
this.entries = entries;
this.activity = a;
}
public static class ViewHolder{
public TextView item1;
public TextView item2;
}
public int getCount()
{
return entries.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
ViewHolder holder;
if (v == null) {
LayoutInflater vi =
(LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.add_player_listview, null);
holder = new ViewHolder();
holder.item1 = (TextView) v.findViewById(R.id.name);
holder.item2 = (TextView) v.findViewById(R.id.email);
v.setTag(holder);
}
else
holder=(ViewHolder)v.getTag();
final PlayerInfo custom = entries.get(position);
if (custom != null) {
holder.item1.setText(custom.GetName());
holder.item2.setText(custom.GetEmail());
}
return v;
}
}
感谢回答..我将其添加为你的建议。现在我添加的第一个项目仍然在listview中,但是新项目没有被添加。所以在列表视图中仍然有一个项目,该项目是我添加的第一个项目。 – 2013-04-07 17:05:31
谢谢MaciejGórski...我明白了。在我的XML中,我有滚动视图内导致问题的Listview。我删除了滚动视图,现在它按照我的意图工作。 – 2013-04-07 20:19:31