我试图从go*gle中找到任何教程,但我仍然没有找到我需要的东西。
我创建了这样的布局:
|------------------|
| 1.TextView |
| * * * * * |
|------------------|
| 2.TextView |
| * * * * * |
|------------------|
| 3.TextView |
| * * * * * |
|------------------|
| |
| Btn | TextView |但我希望当button按下时,它正在收集每个列表中的任何项目,setText到TextView的方式如下:
|-------------------------|
| 1.TextView |
| * * * * * |
|-------------------------|
| 2.TextView |
| * * * |
|-------------------------|
| 3.TextView |
| * * * * |
|-------------------------|
| |
| Btn |"No : 1 - Star = 5"|
| "No : 2 - Star = 3"|
| "No : 3 - Star = 4"|
|-------------------------|我只需要用下面的代码setText一个列表:
kirim.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float tanya = adapter2.getItem(3).getRatingStar(); //getItem("list id")
TextView Star = (TextView) findViewById(R.id.star);
if (Star != null) {
Star.setText("Star : "+tanya);
}
}
});我尝试过循环,但是我不知道应该做什么来获取id并对ListView的每个列表进行估值。
我坚持了这段代码,还没有修复错误
kirim.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float bintang = adapter2.getItem(3).getRatingStar();
TextView Star = (TextView) findViewById(R.id.star);
for(int i = 0; i<=adapter2.getCount(); i++)
Star.setText("id 1" + i + "\nStar : "+bintang);
}
});有什么想法或参考可以让我读一下代码流吗?
编辑
PertanyaanAdapter.java
class PertanyaanAdapter extends ArrayAdapter<Pertanyaan> {
private AppCompatActivity activity;
private List<Pertanyaan> movieList;
PertanyaanAdapter(AppCompatActivity context, int resource, List<Pertanyaan> objects) {
super(context, resource, objects);
this.activity = context;
this.movieList = objects;
}
@Override
public Pertanyaan getItem(int position) {
return movieList.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.item_listview, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
//holder.ratingBar.getTag(position);
}
holder.ratingBar.setOnRatingBarChangeListener(onRatingChangedListener(position));
holder.ratingBar.setTag(position);
holder.ratingBar.setRating(getItem(position).getRatingStar());
holder.movieName.setText(getItem(position).getAsk());
return convertView;
}
private RatingBar.OnRatingBarChangeListener onRatingChangedListener(final int position) {
return new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {
Pertanyaan item = getItem(position);
assert item != null;
item.setRatingStar(v);
Log.i("Adapter", "star: " + v);
}
};
}
private static class ViewHolder {
private RatingBar ratingBar;
private TextView movieName;
ViewHolder(View view) {
ratingBar = (RatingBar) view.findViewById(R.id.rate_img);
movieName = (TextView) view.findViewById(R.id.text);
}
}
}Pertanyaan.java
package flix.yudi.pertanyaan3;
public class Pertanyaan {
private float ratingStar;
private String ask;
Pertanyaan(int ratingStar, String ask) {
this.ratingStar = ratingStar;
this.ask = ask;
}
float getRatingStar() {
return ratingStar;
}
void setRatingStar(float ratingStar) {
this.ratingStar = ratingStar;
}
public String getAsk() {
return ask;
}
}发布于 2016-12-08 07:23:19
内部onClick()
int size = adapter2.getCount();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < size; i++) {
builder.append("No : " + (i + 1) + " - " + "Star = " + adapter2.getItem(i).getRatingStar() + "\n");
}
TextView Star = (TextView) findViewById(R.id.star);
star.setText(builder.toString());发布于 2016-12-08 08:52:33
问题是setText在循环内部发生。因此,使用StringBuilder在循环中使用append()和after循环出口准备文本:
kirim.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView Star = (TextView) findViewById(R.id.star);
StringBuilder text = new StringBuilder();
for(int i = 0; i<=adapter2.getCount(); i++) {
float bintang = adapter2.getItem(i).getRatingStar();
text.append("id 1" + i + "\nStar : " + bintang);
}
Star.setText(text);
}
});现在,将数据发送到MySQL?如果您指的是数据库,则需要创建一个名为“create”的列并插入该行。
发布于 2016-12-08 07:29:14
您将需要一个垂直方向的linear layout,可以在这个线性布局中动态地添加textView,并使用for loop在新创建的textView上显示listView数据。它将为您提供所需的输出。
https://stackoverflow.com/questions/41033655
复制相似问题