2015-07-13 57 views
-5

如何在textview內的ListView中提供一個ID?如何在id列表中的textview項目ID?

   adapter = new SimpleCursorAdapter(this, R.layout.row, c, 
       new String[] { "body", "address" }, new int[] { 
         R.id.lblMsg, R.id.lblNumber }); 

我應該用lblMsglblNumber在做什麼?

+0

創建XML文件行給ID那裏,並用它在適配器列表中的特定行。 – SANAT

+0

我沒有得到答案。如何創建行? – eshal

+0

請在下面查看我的答案。 – SANAT

回答

0

應聲明我還想這

<TextView 
    android:id="@+id/yourIdHere" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_weight="1" 
    android:gravity="center" 
    android:text="yourTextHere" 

在XML聲明ID爲每個元素和 定義

TextView的電視; //在onCreate之前。

後,在Java代碼中去的onCreate &這樣定義:

tv = (TextView) findViewById(R.id.yourIdHere); 
+0

但我使用的是listview。在那裏,我如何使用文本視圖。 – eshal

0

首先創建XML文件列表視圖的列。請參閱此:

XML文件:

<?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="match_parent" > 
    <ImageView 
     android:id="@+id/ivImage" 
     android:layout_height="80dp" 
     android:layout_width="80dp" 
     android:layout_alignParentLeft="true"/> 
    <TextView 
     android:id="@+id/tvMovieName" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_toRightOf="@+id/ivImage"/> 
    <TextView 
     android:id="@+id/tvRating" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_toRightOf="@+id/ivImage" 
     android:layout_below="@+id/tvMovieName"/>  

    <TextView 
     android:id="@+id/tvGenre" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_toRightOf="@+id/ivImage" 
     android:layout_below="@+id/tvRating"/> 

    <CheckBox 
     android:id="@+id/cbSelect" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_above="@+id/tvYear" 
     android:layout_alignParentRight="true"/> 

    <TextView 
     android:id="@+id/tvYear" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_below="@+id/tvGenre" 
     android:layout_alignParentRight="true"/> 
</RelativeLayout> 

適配器代碼:

package com.example.webservicecall; 

import java.util.Arrays; 
import java.util.List; 

import org.w3c.dom.Text; 

import com.squareup.picasso.Picasso; 

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.CheckBox; 
import android.widget.CompoundButton; 
import android.widget.CompoundButton.OnCheckedChangeListener; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class MovieAdapter extends ArrayAdapter<MovieVO>{ 

    Context context; 
    List<MovieVO> movieList; 
    public MovieAdapter(Context context, int resource, List<MovieVO> objects) { 
     super(context, resource, objects); 
     this.context = context; 
     movieList = objects; 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); 
     convertView = inflater.inflate(R.layout.list_row, null); 
     TextView tvMovieName = (TextView) convertView.findViewById(R.id.tvMovieName); 
     TextView tvRating = (TextView) convertView.findViewById(R.id.tvRating); 
     TextView tvGenre = (TextView) convertView.findViewById(R.id.tvGenre); 
     TextView tvYear = (TextView) convertView.findViewById(R.id.tvYear); 
     ImageView ivImage = (ImageView) convertView.findViewById(R.id.ivImage); 
     CheckBox cbSelect = (CheckBox) convertView.findViewById(R.id.cbSelect); 

     if(movieList.get(position).isSelected()) 
     { 
      cbSelect.setChecked(true); 
     } 
     else 
     { 
      cbSelect.setChecked(false); 
     } 

     cbSelect.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       if(isChecked) 
       { 
        movieList.get(position).setSelected(true); 
       } 
       else 
       { 
        movieList.get(position).setSelected(false); 
       } 
      } 
     }); 

     tvMovieName.setText(movieList.get(position).getName()); 
     tvRating.setText(movieList.get(position).getRating()); 
     String genreStr = ""; 
//  for (String str : movieList.get(position).getGenre()) { 
//   genreStr += str + ", "; 
//  } 
     tvGenre.setText(Arrays.toString(movieList.get(position).getGenre()).replace("[", "").replace("]", "")); 
     tvYear.setText(movieList.get(position).getYear()); 
     Picasso.with(context).load(movieList.get(position).getImageUrl()).into(ivImage); 
     return convertView; 
    } 
} 

活動代碼:

MovieAdapter adptr = new MovieAdapter(MainActivity.this, 0, movieList); 
lvMovie.setAdapter(adptr); 

這裏movieList是List。 lvMovie是listview。 MovieAdapter是適配器。

結果是:

Row create this UI in ListView

+0

非常感謝親愛的現在它對我很清楚..讓我自己做:) – eshal

+0

太棒了!試試這個作爲參考 – SANAT

相關問題