2013-04-07 26 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

相關問題