2013-04-07 39 views
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; 
    } 

} 

回答

0

尝试增加

PlayerInfo info = new PlayerInfo();

之前

info.SetName(Name.getText().toString());

+0

感谢回答..我将其添加为你的建议。现在我添加的第一个项目仍然在listview中,但是新项目没有被添加。所以在列表视图中仍然有一个项目,该项目是我添加的第一个项目。 – 2013-04-07 17:05:31

+0

谢谢MaciejGórski...我明白了。在我的XML中,我有滚动视图内导致问题的Listview。我删除了滚动视图,现在它按照我的意图工作。 – 2013-04-07 20:19:31

相关问题