2014-04-21 352 views
0

我已經創建了一個數組列表,並顯示在一個列表視圖與簡單的列表項目多項選擇,但我不能檢查或勾選列表上的項目,當我點擊項目什麼都沒有發生。請檢查我的代碼,並告訴我我做錯了什麼。簡單的列表項目多項選擇不選擇項目

package com.example.arrays; 

import java.util.Random; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.AdapterView.OnItemLongClickListener; 

public class MainActivity extends Activity { 
ListView showList; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final TextView show = (TextView)findViewById(R.id.txtShow); 
    final Random generate = new Random(); 
    showList = (ListView)findViewById(R.id.listView1); 
    final String[] myAttraction = new String[4]; 
    myAttraction[0]= "Walter Sisulu National Botanical Garden "; 
    myAttraction[1]= "Coca-Cola Dome"; 
    myAttraction[2]= "Promusica Theatre"; 
    myAttraction[3]= "Unisa Science Campus"; 
    Button arrays = (Button)findViewById(R.id.button1); 
    arrays.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 


      /*int random = generate.nextInt(4); 
      String display = myAttraction[random]; 
      show.setText(display);*/ 

      ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_multiple_choice, myAttraction); 
      showList.setAdapter(adapter); 

     } 
    }); 
    showList.setOnItemLongClickListener(new OnItemLongClickListener() { 

     public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int pos, long id) { 
      // TODO Auto-generated method stub 
      Toast.makeText(getBaseContext(), "long clicked pos: " + pos, Toast.LENGTH_LONG).show(); 

      return true; 
     } 
    }); 
} 

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

} 
+0

您正在使用'setOnItemLongClickListener',期待*長*點擊,你想要什麼? –

+0

不,我想要當用戶點擊該項目必須選擇不是一個長時間的點擊。 –

+1

然後,你應該使用'showList.setOnItemClickListener(new OnItemClickListener(){...'而不是。 –

回答

2

添加OnItemClickListener像這樣的檢查/取消選中CheckedTextView當用戶點擊一個項目

showList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      // change the checkbox state 
      CheckedTextView checkedTextView = ((CheckedTextView)view); 
      checkedTextView.setChecked(!checkedTextView.isChecked()); 
     } 
    }); 
+0

感謝它的工作,我怎樣才能在左邊顯示覆選框 –

+0

您需要創建一個自定義佈局與複選框和TextView – Libin

0

改變你的代碼如下....

ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_multiple_choice, myAttraction); 
      showList.setAdapter(adapter); 

arrays.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 


      /*int random = generate.nextInt(4); 
      String display = myAttraction[random]; 
      show.setText(display);*/ 
     } 
    }); 

showList.setOnItemClickListener(new OnItemClickListener() { 

     public boolean onItemClick(AdapterView<?> arg0, View arg1, int pos, long id) { 
      // TODO Auto-generated method stub 
      Toast.makeText(getBaseContext(), "long clicked pos: " + pos, Toast.LENGTH_LONG).show(); 

      return true; 
     } 
    }); 
0

設置choiceMode財產您的名單到multipleChoice。我在我的應用程序中以這種方式實現多選列表,並且它確實有效。