我有一个主要活动类,其中我定义了字符串数组,该字符串数组从保存在res / value中的XML文件中获取列表,其中包含项目列表。现在我想要当任何项目选择它时颜色变为黄色。怎么做请帮助:))
提前感谢::)
我的两个文件是list_data.XML和Main Activity.java
List_data.XML
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="tias_list">
<item>About us</item>
<item> Offered</item>
<item> year </item>
<item>Process</item>
<item>item1</item>>
<item>item2</item>>
<item>item3</item>>
<item>item4</item>
</string-array>
</resources>
我的主要活动类代码
public class MainActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] tias_list = getResources().getStringArray(R.array.tias_list);
this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label,tias_list));
ListView lv = getListView();
lv.setCacheColorHint(0);
lv.setBackgroundResource(R.drawable.black);
lv.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent,View view,int position, long id) {
if (position == 0)
{
Intent myIntent = new Intent(getApplicationContext(), SingleListItem.class);
startActivity(myIntent);
}
else if(position == 1)
{
Intent myIntent = new Intent(getApplicationContext(), lastyear.class);
startActivity(myIntent);
}
else if(position == 2)
{
Intent myIntent = new Intent(getApplicationContext(), la.class);
startActivity(myIntent);
}
else if(position == 3)
{
Intent myIntent = new Intent(getApplicationContext(),la.class);
startActivity(myIntent);
}
else if(position == 4)
{
Intent myIntent = new Intent(getApplicationContext(), SingleListItem.class);
startActivity(myIntent);
}
else if(position == 5)
{
Intent myIntent = new Intent(getApplicationContext(), SingleListItem.class);
startActivity(myIntent);
}
else if(position == 6)
{
Intent myIntent = new Intent(getApplicationContext(), SingleListItem.class);
startActivity(myIntent);
}
else if(position == 7)
{
Intent myIntent = new Intent(getApplicationContext(), SingleListItem.class);
startActivity(myIntent);
}
}
});
}
答案 0 :(得分:1)
您当前使用的适配器是默认适配器。但是,现在您要修改它的属性。为此,您需要实现自定义适配器 - 您自己的适配器。如果你不知道如何做到这一点,只需谷歌自定义ListView适配器。
在该自定义适配器中,有一个getView()方法,并且在自定义适配器的getView()方法中检查项目的位置是否与所选项目相同。如果是,请设置背景颜色。
这里有一个完整的答案:https://stackoverflow.com/a/16978159/1239966
答案 1 :(得分:0)
设置所选项目的颜色使用
view.setBackgroundColor(Color.YELLOW);
,即在您的代码中
lv.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent,View view,int position, long id) {
view.setBackgroundColor(Color.YELLOW);
// your code
答案 2 :(得分:0)
在你的getView方法中,你必须在那里做一些代码。
int currentPosition=0;
if (position == currentPosition) {
convertView.setBackgroundColor(Color.YELLOW);
} else {
convertView.setBackgroundColor(Color.YOUR DEFAULT COLOR);
}
//点击商品代码:
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
currentPosition = position;
adapter.notifyDataSetChanged();
}
});