虽然这个问题已被用户多次询问,但我无法通过浏览所有帖子来解决我的问题。我在android中使用了列表视图。并且在listview中添加了评级栏,文本视图和一些其他子项。我只能选择整个列表项。我想选择单个列表项。我将粘贴我尝试过的代码。
public class ReviewAdapter extends ArrayAdapter<String>{
private final Context context;
private final String[] values;
public ReviewAdapter(Context context, String[] values) {
super(context,R.layout.activity_reviewlist,values);
this.context = context;
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater layoutInflater =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView =layoutInflater.inflate(R.layout.activity_reviewlist, parent,false);
TextView tv1 = (TextView) rowView.findViewById(R.id.textView1);
TextView tv2 = (TextView) rowView.findViewById(R.id.textView2);
TextView tv3 = (TextView) rowView.findViewById(R.id.textView3);
TextView tv4 = (TextView) rowView.findViewById(R.id.textView4);
TextView tv5 = (TextView) rowView.findViewById(R.id.textView5);
RatingBar ratingbar = (RatingBar) rowView.findViewById(R.id.ratingBar1);
ratingbar.setIsIndicator(true);
ImageView im1 = (ImageView) rowView.findViewById(R.id.imageView1);
tv1.setText(values[position]);
String s = values[position];
if(s.equals("Speech for Presentation")){
tv2.setText("07 th May 2011 22:30");
tv3.setText("05:30");
tv4.setText("Attempts");
tv5.setText("5");
}
else if(s.equals("Slide Show Presentation")){
tv2.setText("08 th May 2011 21:15");
tv3.setText("04:12");
tv4.setText("Attempts");
tv5.setText("7");
}
else if(s.equals("Seminar Presentation")){
tv2.setText("09 th May 2011 10:15");
tv3.setText("08:26");
tv4.setText("Attempts");
tv5.setText("9");
}
else if(s.equals("Training Speech")){
tv2.setText("10 th May 2011 9:16");
tv3.setText("09:26");
tv4.setText("Attempts");
tv5.setText("3");
}
else{
tv2.setText("12 th May 2011 10:10");
tv3.setText("19:26");
tv4.setText("Attempts");
tv5.setText("7");
}
return rowView;
}
}
现在我要在此处粘贴我的列表活动
public class ReviewActivity extends ListActivity {
static final String[] reviews = new String[] {"Speech for Presentation","Slide Show Presentation","Seminar Presentation","Training Speech","Promoting the product"};
protected void onListItemClick(ListView l, View v, int position, long id) {
//get selected items
String selectedValue = (String) getListAdapter().getItem(position);
Toast.makeText(this, selectedValue, Toast.LENGTH_SHORT).show();
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ReviewAdapter(this, reviews));
}
}
最后我粘贴了我尝试过的xml。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RatingBar
android:id="@+id/ratingBar1"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="16dp"
android:layout_marginTop="33dp"
android:isIndicator="true"
/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/ratingBar1"
android:text="TextView" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="26dp"
android:text="TextView" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView2"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/textView2"
android:src="@drawable/timer" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageView1"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/imageView1"
android:text="TextView" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView3"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/textView3"
android:text="TextView" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView4"
android:layout_alignRight="@+id/ratingBar1"
android:text="TextView" />
</RelativeLayout>