2013-06-02 84 views
0

我想製作一個列表視圖,您可以在列表中單擊列表中的各個項目以調出刪除對話框。但由於某種原因,當我點擊列表時,我沒有收到聽衆的任何反應。下面是主要的活動試圖創建一個onItemClickListener

public class LifeRpgMain extends Activity { 
ArrayList<String> List_Data=new ArrayList<String>(); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_life_rpg_main); 
    if(savedInstanceState!=null){ 
     System.out.println("this shouldnt happen"); 
     ArrayList<String> inp = (ArrayList<String>) savedInstanceState.get("positive"); 
     System.out.println("game made"); 
     List_Data.addAll(inp); 


    } 
    else{ 
     List_Data.add("run a mile"); 
     List_Data.add("do homework"); 
     List_Data.add("make this stupid app"); 
     List_Data.add("make money"); 
    } 
    ListAdapter adapter = new ListAdapter(this, 
      R.layout.list_item, List_Data); 


    ListView gameList = (ListView) findViewById(R.id.main_list_view); 
    gameList.setAdapter(adapter); 
    //this should allow us to choose individual list items for deletion 
    gameList.setChoiceMode(1); 
    gameList.setOnItemClickListener(new OnItemClickListener(){ 

     @Override 
     public void onItemClick(AdapterView<?> paren, View view, 
       int position, long id) { 
      // TODO Auto-generated method stub 
      FragmentManager fm = getFragmentManager(); 
      DeleteButtonFragment del = new DeleteButtonFragment(position, List_Data); 
      del.show(fm, "delete button"); 
     } 


    }); 




} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.life_rpg_main, menu); 
    return true; 
} 

@Override 
public void onSaveInstanceState(Bundle savedInstanceState){ 
    super.onSaveInstanceState(savedInstanceState); 
    savedInstanceState.putStringArrayList("positive", List_Data); 
} 
public void listAdd(View v){ 
    FragmentManager fm = getFragmentManager(); 
    AddButtonFragment add = new AddButtonFragment(findViewById(R.id.activityname),List_Data); 
    add.show(fm, "teampicker"); 
} 



} 

這裏的代碼爲listadapter

public class ListAdapter extends ArrayAdapter<String>{ 
Context context; 
int layoutResourceId;  
ArrayList<String> data = null; 

public ListAdapter(Context context, int layoutResourceId, ArrayList<String> List_Data) { 
    super(context, layoutResourceId, List_Data); 
    this.layoutResourceId = layoutResourceId; 
    this.context = context; 
    this.data = List_Data; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View row = convertView; 
    ItemHolder holder = null; 
    if(row == null) 
    { 
     LayoutInflater inflater = ((Activity)context).getLayoutInflater(); 
     row = inflater.inflate(layoutResourceId, parent, false); 
     holder = new ItemHolder(); 
     holder.name = (TextView)row.findViewById(R.id.ItemName); 
     row.setTag(holder); 
    } 
    else 
    { 
     holder = (ItemHolder)row.getTag(); 
    } 

    String s = data.get(position); 
    holder.name.setText(s); 
    return row; 

} 

static class ItemHolder{ 

    TextView name; 

} 
} 
+1

「v」是我們應該瞭解的變量嗎? – Snicolas

+0

對不起,這是一隻恐龍,我修好了。 –

+0

和'DeleteButtonFragment'? – Snicolas

回答

0

代碼試試這個代碼

@Override 
    public void onItemClick(AdapterView<?> paren, View view, 
      int position, long id) { 
     // TODO Auto-generated method stub 
     Log.i("Value", List_Data.get(position)); 

    } 
+0

我試過這段代碼,並沒有在這個位置上找到任何日誌。難道是因爲我把它設置在OnCreate上?如果是這樣,那麼我不知道我可以做什麼其他功能... –

+0

@DanielImberman奇怪..刪除'gameList.setChoiceMode(1);'看看你是否得到任何日誌寄存器 – MDMalik

+0

只是試過了,沒有運氣: / –

0

刪除內itemclicklistener -

gameList.setOnItemClickListener(new OnItemClickListener(){ 

@Override 
public void onItemClick(AdapterView<?> paren, View view, 
     int position, long id) { 
     Log.i("Value", List_Data.get(position)); 

    } 
});