我创建了一个列表视图并在列表项目上单击我正在开始一项活动。我在listview行中有一个文本。当我在onItemClick上调用的活动完成或者说返回结果并且结果代码为RESULT_OK时,我想更改该textview的颜色。
任何人请帮助
提前致谢。
这是我的代码:
HeadingListView = (ListView) findViewById(R.id.HeaderList);
adapter = new CustomHeadingAdapter(getApplicationContext(), HeadingList);
HeadingListView.setAdapter(adapter);
HeadingListView.setOnItemClickListener(this);
OnItemClickListener代码是:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent;
switch (position){
case 0:
intent = new Intent(getApplicationContext(), Activity1.class);
intent.putExtras(AllFilledData.get(0));
startActivityForResult(intent, position);
break;
case 1:
intent = new Intent(getApplicationContext(), Activity2.class);
intent.putExtras(AllFilledData.get(1));
startActivityForResult(intent, position);
break;
case 2:
intent = new Intent(getApplicationContext(), Activity3.class);
intent.putExtras(AllFilledData.get(position));
startActivityForResult(intent, position);
break;
这是OnActivity结果:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 0 :
if(resultCode == RESULT_OK){
Bundle bundle = data.getExtras();
AllFilledData.set(requestCode, bundle);
//Here I want to change color of TextView of listitem at position 0
}
break;
case 1:
if(resultCode == RESULT_OK){
Bundle bundle = data.getExtras();
AllFilledData.set(requestCode, bundle);
//Here I want to change color of TextView of listitem at position 1
}
break;
case 2:
if(resultCode == RESULT_OK){
Bundle bundle = data.getExtras();
AllFilledData.set(requestCode, bundle);
//Here I want to change color of TextView of listitem at position 2
}
break;
答案 0 :(得分:1)
嗯.. 首先在代码中的自定义适配器中添加方法。
View v = listview.getChildAt(int position);
//从列表视图的顶部返回它的位置视图位置。 //不是适配器项目位置。
//并将视图折腾到适配器。
adapter.ChangeTextViewColor(v);
public void ChangeTextViewColor(View v){TextView txt = v.childAt(int position); // or findViewbyId(int id);
txt.setTextColor(Color.parse(String RGBcode)); //或其他方式 }
如果保持textview颜色使用viewholder。 在适配器的getView方法
中if(items.get(position).colorchangeType == change) textview.setTextViewColor....
和onactivityresult的一些变化。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 0 :
if(resultCode == RESULT_OK){
Bundle bundle = data.getExtras();
AllFilledData.set(requestCode, bundle);
adapter.getItem(requestCode).colorchangeType = change;
adapter.notifysetdatachange();
//Here I want to change color of TextView of listitem at position 0
}
break;
我的英语不好.............我希望有所帮助。