2012-11-05 81 views
1

我有一個RSS的ListView,我動態填充。我想爲物品設置風格。 我該怎麼做?爲monodroid中的ListView項目設置動態自定義樣式?

+1

我的朋友......這個鏈接將幫助你...... http://stackoverflow.com/questions/6560675/monodroid-splash-screen –

+1

的http:// android.cyrilmottier.com/?p=454 –

+0

謝謝,但我的問題是關於ListView風格 – Saeed

回答

2

row.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="right" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.8" 
     android:gravity="right" 
     android:paddingRight="5dp" 
     android:text="@string/app_name" /> 

    <ImageView 
     android:id="@+id/img" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/bullet" 
     android:contentDescription="@string/app_name" /> 

</LinearLayout> 

main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/mCustomList" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:divider="#666666" 
     android:dividerHeight="0.05dp" 
     android:scrollingCache="false" /> 

</LinearLayout> 

CstListAdapter.java

public class CstListAdapter extends BaseAdapter { 
    private Activity activity; 
    private ArrayList<CstItem> postList = new ArrayList<CstItem>(); 
    private static LayoutInflater inflater = null; 
    private Context ctx; 


    public CstListAdapter(Activity act, ArrayList<CstItem> d, Context ctx) { 
      activity = act; 
     postList = d; 
     inflater = (LayoutInflater) activity 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     this.ctx = ctx; 
    } 
    @Override 
    public int getCount() { 
     return postList.size() < count ? postList.size() : count; 
    } 

    @Override 
    public Object getItem(int position) { 
     return position; 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    public static class ViewHolder { 
     public TextView text; 
     public ImageView img; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder; 
     View row = convertView; 

     if (row == null) { 
      row = inflater.inflate(R.layout.row, null); 
      holder = new ViewHolder(); 
      holder.text= (TextViewPlus) row.findViewById(R.id.text); 
      holder.img= (TextViewPlus) row.findViewById(R.id.img); 
      row.setTag(holder); 
     } else 
      holder = (ViewHolder) row.getTag(); 
     CstItem item = postList.get(position); 
     holder.text.setText(item.getTitle()); 

     return row; 
    } 

CstItem.java

public class CstItem { 

    private String title; 
    private String thumbnail; 
    private String url; 
    private String description; 
    private String pubDate; 


    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

    public String getThumbnail() { 
     return thumbnail; 
    } 

    public void setThumbnail(String thumbnail) { 
     this.thumbnail = thumbnail; 
    } 
... 

} 

Main.java

public class Main extends Activity { 

    private ListView mListView; 
    private CstListAdapter cstListAdaptor; 
    private ArrayList<CstItem> PostList = new ArrayList<CstItem>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.main); 
     mListView = (ListView) findViewById(R.id.mCustomList); 

     cstListAdaptor = new CstListAdapter(this, PostList, this); 

     mListView.setAdapter(cstListAdaptor); 
     PostList.clear(); 

     refreshRss(); 

     mListView.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 

       CstItem cit = PostList.get(position); 
       String cnt = cit.getDescription(); 
       //... 

      } 
     }); 
    } 
... 

} 
相關問題