简体   繁体   English

我正在开发一个用于英语学习的简单教程应用程序,但在设置编号位置时遇到了麻烦

[英]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. 在先进的感谢,我只想放在一排。

Here you can see the image 在这里你可以看到图片

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM