Проблема выбора ListView с контролем рейтинга? - PullRequest
1 голос
/ 11 мая 2011

друзья

Я создал очень простой пользовательский адаптер просмотра списка с рейтинговой шкалой в нем.

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

Кто-нибудь мне подскажет, как выбрать отдельные элементы в списке Android?

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

и listview_item design

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:orientation="horizontal"
  android:layout_height="wrap_content">
  <LinearLayout
  android:layout_width="265dip"
  android:orientation="vertical"
  android:layout_height="wrap_content">
  <TextView android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:id="@+id/text1"
  android:textSize="25dip"
  android:text="This is text1"/>
  <TextView android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:id="@+id/text2"
  android:text="This is text2"/>
  <RatingBar android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  style="?android:attr/ratingBarStyleSmall"
  android:id="@+id/star"
  android:numStars="10"
  android:stepSize="0.1"
  android:isIndicator="true"
  />
  </LinearLayout>
 </LinearLayout>

любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 11 мая 2011

Уважаемый Умар Чтобы реализовать прослушиватели для каждого элемента в listview (Single row), используйте Custom адаптер и в методе getview (....) пользовательского адаптера реализует прослушиватели, которые вы хотите .. Пример кода `public class FindFriendsListAdapter расширяет BaseAdapter {

private  ArrayList<SingleElementDetails> allElementDetails;

private LayoutInflater mInflater;
private Context context;
private String userid1;
private int usersno1;
private DBAdapter db;
public FindFriendsListAdapter(Context context, ArrayList<SingleElementDetails> results,String userid,int usersno) {
    this.context=context;
    this.userid1=userid;
    this.usersno1=usersno;
    allElementDetails = results;
    mInflater = LayoutInflater.from(context);
    db=new DBAdapter(context);
    db.open();
}
public int getCount() {
    return allElementDetails.size();        
}
public Object getItem(int position) {
    return allElementDetails.get(position);
}
public long getItemId(int position) {
    return position;
}
public View getView(final int position, View convertView, ViewGroup parent) 
{
    convertView = mInflater.inflate(R.layout.friendlisthelper, null);
    ImageView imageview = (ImageView) convertView.findViewById(R.id.friendimageview);
    TextView textview = (TextView) convertView.findViewById(R.id.friendtextview);
    Button button=(Button)convertView.findViewById(R.id.friendbutton);

    convertView.setOnClickListener(new OnClickListener(){

        public void onClick(View v) {
            //do what u want
        }
    });
    button.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
           // do what u want
        }
    });
    return convertView;
}     

} `

0 голосов
/ 16 мая 2011

android: isIndicator = "false", чтобы оценить его.и выбор списка исчезнет автоматически, и управление будет передано этому рейтинговому контролю.

0 голосов
/ 11 мая 2011

Попробуйте это

 ListView lv_party;
lv_party.setOnItemClickListener(new OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView<?> parent, View view, final int position,long id)
        {
            // TODO Auto-generated method stub

                    view.findViewById(R.id.btn_del).setOnClickListener(new View.OnClickListener(){
//your code     
}
...