2010-06-03 3 views
0

Я использую LinearLayout для отображения текста и изображения. У меня есть изображения на drawable /, и я имплементирую это с помощью ListActivity с некоторыми функциями onListItemClick. теперь я хочу изменить изображение для строк, которые обрабатываются с помощью функции onclick, чтобы показать статус как обработанный. может ли кто-нибудь помочь мне в этом вопросе изменить изображение во время выполнения.изменение изображения на listview во время выполнения в android

следующее объяснение.

Публичный класс ListWithImage расширяет ListActivity { /** Вызывается, когда действие сначала создается. */

private SimpleCursorAdapter myAdapter;

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
// raj setContentView(R.layout.main); 

    Cursor cursor = getContentResolver().query(People.CONTENT_URI, null, null, null, null); 
    startManagingCursor(cursor); 

    String[] columns = new String[] {People.NAME, People.NUMBER}; 
    int[] names = new int[] {R.id.contact_name, R.id.contact_number}; 

    myAdapter = new SimpleCursorAdapter(this, R.layout.main, cursor, columns, names); 
    setListAdapter(myAdapter); 

} 


@Override 
protected void onListItemClick(ListView listView, View view, int position, long id) { 
    super.onListItemClick(listView, view, position, id); 

    Intent intent = new Intent(Intent.ACTION_CALL); 
    Cursor cursor = (Cursor) myAdapter.getItem(position); 
    long phoneId = cursor.getLong(cursor.getColumnIndex(People.PRIMARY_PHONE_ID)); 
    intent.setData(ContentUris.withAppendedId(Phones.CONTENT_URI, phoneId)); 

    startActivity(intent); 
} 

}

и main.xml является:

<LinearLayout 
    android:layout_height="wrap_content" android:orientation="vertical" android:layout_width="250px"> 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" android:orientation="horizontal"> 

    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Name: " /> 

    <TextView android:id="@+id/contact_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
</LinearLayout> 
    <LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" android:orientation="horizontal">   
    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Phone: " />  
    <TextView android:id="@+id/contact_number" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
</LinearLayout> 


Я думал, чтобы добавить поле к БД. но я не смог узнать, как изменить изображение с помощью кода. может ли кто-нибудь предоставить мне пример для рисования изображения с кодом и изменить его на основе условия во время выполнения.

ответ

0

Я сделал то же самое в своем приложении (однако я не использовал указатель мыши, а настраиваемый адаптер, однако логика должна быть одинаковой).

Что мне нужно, чтобы получить эту работу, было включить поле в db, которое указывает, обрабатывает ли поле или не обрабатывает поле (или какое-либо поле, определяющее, какое изображение следует показывать). Затем вам нужно привязать свой адрес изображения к этому полю. Я не знаю, можете ли вы сделать это с помощью simplecursoradapter, или если вам нужно реализовать свои собственные, хотя.

Затем, когда пользователь нажимает на элемент, вы просто устанавливаете этот элемент как обработанный в db, и вы сообщаете адаптеру, что он был обновлен.

+0

Я думал добавить поле в БД. но я не смог узнать, как изменить изображение с помощью кода. может ли кто-нибудь предоставить мне пример этой проблемы, если она известна. – Raj

+1

Это не слишком сложно. Вам нужно получить представление изображения в коде (например, ImageView iv = findViewById (R.id.image_view_id); iv.setImage ... '. Я написал ... потому что вы можете установить изображение на используя ресурс, bitmap +++, а имена методов - разные. – Alxandr

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