我无法做最简单的事情:-)(我想应该很简单)
单击按钮时,我尝试在列表视图中突出显示项目。我点击并没有任何反应:-(
有谁看到,我在下面的代码中做错了什么,或者有人有提示吗?
启动活动时,会显示列表视图,并且第三项也突出显示(int isymbolindex=2;)。但是,当尝试更改 onClick 或 onItemClick 中的选择时,它不起作用。调试时,它通过'public View getView'方法和isymbolindex = 3,但gui(listview)没有更新。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.app.ExpandableListActivity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ExpandableListView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class CityEditorActivity extends Activity {
int isymbolindex=2;
Context croot=this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_city_editor);
final ListView lvsymbols= (ListView)findViewById(R.id.listViewdymbols);
String[] values = new String[] { "Value1", "Value2", "Value3", "Value4"};
final ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < values.length; ++i) {
list.add(values[i]);
}
lvsymbols.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
lvsymbols.setSelector(android.R.color.darker_gray);
Button bvon1=(Button)findViewById(R.id.vonadd1);
bvon1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
isymbolindex=3;
lvsymbols.setSelection(3);
lvsymbols.invalidate();
}
});
lvsymbols.setAdapter( new ArrayAdapter(this, R.layout.own_simple_list_item, list)
{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final View renderer = super.getView(position, convertView, parent);
if (position == isymbolindex)
{
//TODO: set the proper selection color here:
renderer.setBackgroundResource(android.R.color.darker_gray);
}else{
renderer.setBackgroundResource(android.R.color.white);
}
return renderer;
}
});
lvsymbols.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position,
long arg3) {
isymbolindex=position;
arg0.setSelection(isymbolindex);
view.getFocusables(position);
view.setSelected(true);
lvsymbols.invalidate();
}
});
}
}