[英]I am working on a simple tutorial app for English learning and i am having a trouble with setting the numbering position
Please help me to short out this problem i am glad if you solve this for me 请帮助我解决这个问题,如果您能为我解决这个问题,我感到很高兴
My MainActivity.java file is MainActivity.java 我的MainActivity.java文件是MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Resources res= getResources();
mainTopic=res.getStringArray(R.array.MainTopic);
mainDescription=res.getStringArray(R.array.DescriptionContent);
listView= (ListView) findViewById(R.id.listView);
MyAdapter adapter=new MyAdapter(this,mainTopic,image1,mainDescription);
listView.setAdapter(adapter);
}
} }
My activity_main.xml file is 我的activity_main.xml文件是
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
My Adapter class is MyAdapter.java 我的适配器类是MyAdapter.java
package androidthirst.company.abhi.totalenglish;
public MyAdapter(Context context, String[] MainTopic,String[] img,String[] description) {
super(context,R.layout.single_row,R.id.textView,MainTopic);
this.context=context;
this.MainTopic=MainTopic;
this.img=img;
this.description=description;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row= layoutInflater.inflate(R.layout.single_row,parent,false);
TextView imageView= (TextView) row.findViewById(R.id.imageView);
TextView textView1= (TextView) row.findViewById(R.id.textView);
TextView textView2= (TextView) row.findViewById(R.id.textView2);
for (int i =1;i<=position;i++) {
imageView.setText(""+i);
}
textView1.setText(MainTopic[position]);
textView2.setText(description[position]);
return row;
}
} }
Thanks in advanced I just want to Put one at 1 row. 在先进的感谢,我只想放在一排。
Your for loop is ultimately setting value of position in imageView. 您的for循环最终将设置imageView中的position值。 But position starts from 0, so you have to add 1 in each.
但是位置从0开始,因此您必须在每个位置加1。 Replace you this loop
将此循环替换为您
for (int i =1;i<=position;i++) {
imageView.setText(""+i);
}
with 同
imageView.setText(""+(position+1));
Just replace this loop: 只需替换此循环:
for (int i =1;i<=position;i++) {
imageView.setText(""+i);
}
by this: 这样:
imageView.setText(String.valueOf(position + 1));
NOTE: you don't need the loop because the getView function is inflating row by row with it's position. 注意:您不需要循环,因为getView函数将其位置逐行膨胀。 It's not inflating all rows at the same time.
它不会同时膨胀所有行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.