2013-01-15 57 views
0

在我的項目中,我有一個列表視圖,每個列表項目都包含一個圖像。現在當一個特定的列表項被點擊時,關於該項目的新活動被打開並且它具有3個按鈕。根據點擊哪個按鈕,該特定列表項中的圖像會發生變化。 每個列表項都與數據庫中的特定行相關聯,我想知道如何識別特定的按​​鈕單擊並直接在列表項中更改圖像視圖。動態更改列表視圖中的列表項目中的圖像

我的自定義適配器的getView()方法如下

public class SpecialAdapter extends SimpleCursorAdapter{ 

    private EventDBAdapter dbHelper; 

@SuppressWarnings("deprecation") 
public SpecialAdapter(Context context, int layout, Cursor c, String[] from, 
     int[] to, int i) { 
    super(context, layout, c, from, to); 
    // TODO Auto-generated constructor stub 
} 

private int[] colors = new int[] { 0xAAFFFFF, 0xAAc0c0c0 }; 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 


     View view = super.getView(position, convertView, parent); 
     int colorPos = position % colors.length; 
     view.setBackgroundColor(colors[colorPos]); 
     return view; 
} 

    } 

每個列表項從這個觀點誇大

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:layout_marginLeft="10dp" 
android:layout_marginBottom="10dp" 
android:layout_marginTop="5dp" 
> 

<View 
android:layout_width="1dip" 
android:layout_height="fill_parent" 
android:layout_toLeftOf="@+id/tvListTitle" 
android:paddingLeft="10dp" 
android:background="#CC3232"/> 

<TextView 
    android:id="@+id/tvListTitle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textStyle="bold" 
    android:layout_marginTop="10dp" 
    android:textColor="#108070" 
    android:text="Title in list" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/tvListTime" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="00:00 to 00:00" 
    android:layout_below="@+id/tvListTitle" 
    android:textColor="#138F6A" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<TextView 
    android:id="@+id/tvListWhere" 
    android:layout_width="wrap_content" 
    android:layout_below="@+id/tvListTime" 
    android:layout_height="wrap_content" 
    android:text="Crystal plaza , Andheri (West) . " 
    android:textColor="#138F6A" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<TextView 
    android:id="@+id/tvListDetails" 
    android:layout_width="250dp" 
    android:layout_below="@+id/tvListWhere" 
    android:layout_height="20dp" 
    android:text="This is gonna contain brief summary about the event" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<TextView 
    android:id="@+id/tvListDate" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="14th January" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentRight="true" 
    android:textAppearance="?android:attr/textAppearanceSmall" /> 

<TextView 
    android:id="@+id/tvListDay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/tvListDetails" 
    android:text="Monday" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<ImageView 
    android:id="@+id/ivStatus" 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:layout_alignParentRight="true" 
    android:layout_below="@+id/tvListWhere" 
    android:src="@drawable/yes" /> 

</RelativeLayout> 
+0

你是如何設定的數據'ListView'的內容列表視圖,您使用的' CursorAdapter'或者你已經制作了你自己的適配器?什麼樣的數據庫,它駐留在服務器上還是本地的sqlite數據庫? –

+0

@AdilSoomro我已經讓我自己的適配器和數據駐留在本地sqlite數據庫上。 – user1918034

+0

爲ListView和Adapter的getView()發佈了一些代碼,您的數據模型如何? –

回答

0

解決,我使用SD卡上的圖像的URL,並將其存儲在sqlite的分貝和填充與數據庫行明智

1

您可以使用startactivityforresult()

OR

在當前活動中使用三個靜態變量並將它們設置爲一致g到新活動中按下的按鈕打開,並且在進入前一活動時檢查變量並相應地設置圖像。

+0

如果我使用第二個選項,我如何找到在下一個活動(非列表視圖活動)中單擊按鈕的哪個列表項並僅更改該特定列表項? – user1918034

+0

我建議你使用第一個,但如果你再使用第二個,那麼你需要使用一個額外的變量,你應該更新它的位置時單擊任何列表項。 – skygeek

+0

如果您的問題解決,除了我的答案。 – skygeek

相關問題