2015-08-25 3 views
-1

У меня есть активность A с listView и активность B с формой. Я касаюсь предмета из действия A и вызывается формой из действия B. Например. Я прикасаюсь к элементу «Лаура» и открываю форму о ней, после заполнения формы и завершения операции. B Я возвращаю строку «Laura», и я хочу изменить цвет элемента списка ListView из Laura. Как я могу это сделать?Как изменить цвет списка элементов списка с помощью onActivityResult?

+0

Попробуйте проверить эту ссылку StackOverflow из: http://stackoverflow.com/questions/5564789/change-listviews-textcolor – jcameron47

ответ

1

Вы должны использовать логическое значение для проверки, если и сделал несколько изменен на Лоры счет, так что это будет выглядеть примерно так:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
// Check which request we're responding to 
if (requestCode == REQUEST_ACCOUNT_LAURA) { 
    // Make sure the request was successful 
    if (resultCode == RESULT_OK) { 
     // The user changed Laura account. 
     boolean isAccountChanged= data.getBooleanExtra("isAccountChanged", false); 
     if (isAccountChanged) { 
      ListView listView = new ListView(this); 
      // Get the view associated with Laura, and change the background color. 
      ((View) listView.getItemAtPosition(position)).setBackgroundColor(R.color.black); 
       listView.getAdapter().notifyDataSetChanged(); 
    } 

     // Do something with the contact here (bigger example below) 
    } 
    } 
} 

Также вы можете использовать это onListItemCLick, который вы можете установить на вашем ListView:

View lastTouchedView; 

@Override 
public void onListItemClick(ListView parent, View v, int position, long id) 
lastTouchedView.setBackgroundColor(Color.WHITE); 
v.setBackgroundColor(Color.CYAN); 
lastTouchedView = v; 
} 
+0

спасибо за ответ, но я не могу 't изменить listView цвет в onActivityResult, id вы пытаетесь простой listView.setBackgroundColor (R.color.black), вы не получите его! – daniel12345smith

+0

Вам необходимо сбросить адаптер списка. Либо используйте adapter.notifyDataSetChanged(), либо просто listView.setAdapter (новый адаптер() ...) – risto

0

вернуть что-то еще, кроме «Лауры». возможно, вернуть объект в связку? OnActivityResult() не ограничивается только примитивными типами. Эксперимент с этим и посмотреть, что вы можете сделать =)

Смежные вопросы