读书人

ListView如何变成选中状态

发布时间: 2013-07-01 12:33:04 作者: rapoo

ListView怎么变成选中状态?
Android里面ListView我现在不选中,怎么在程序里面让某一行变成选中状态,或者高亮也行!
listview Android
[解决办法]


package com.example.zdemo1;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class ListBackground extends Activity {

private List<String> dataList = new ArrayList<String>();

private ListView lv;

private int clickPosition = -1;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_background);
for (char tempChar = 'a' ; tempChar <= 'z'; tempChar++){
dataList.add(String.valueOf(tempChar));
}
lv = (ListView)findViewById(R.id.listView1);
final MyAdapter ma = new MyAdapter();
lv.setAdapter(ma);
lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if(position != clickPosition){
clickPosition = position;
}
else{
clickPosition = -1;
}
ma.notifyDataSetChanged();


}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_list_background, menu);
return true;
}

private class MyAdapter extends BaseAdapter{

@Override
public int getCount() {
return dataList.size();
}

@Override
public Object getItem(int position) {
return dataList.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = new TextView(ListBackground.this);
tv.setText(dataList.get(position));
tv.setBackgroundColor(Color.WHITE);
if(position == clickPosition){
tv.setBackgroundColor(Color.BLACK);
}
return tv;

/* final int p = position;
RadioButton rb = new RadioButton(ListBackground.this);
rb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
clickPosition=p;
}
else{


clickPosition = -1;
}
notifyDataSetChanged();
}
});
if(clickPosition == position){
rb.setChecked(true);
}
else{
rb.setChecked(false);
}
return rb;*/
}

}
}



原来帮人写的。跟你的需求应该一样吧。

读书人网 >Android

热点推荐