Java 我正在为英语学习开发一个简单的教程应用程序,我在设置编号位置时遇到了问题

Java 我正在为英语学习开发一个简单的教程应用程序,我在设置编号位置时遇到了问题,java,android,listview,Java,Android,Listview,请帮我把这个问题简短地说出来。如果你能帮我解决这个问题,我很高兴 我的MainActivity.java文件是MainActivity.java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Resources res= getResources(

请帮我把这个问题简短地说出来。如果你能帮我解决这个问题,我很高兴

我的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);

}
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;
}
}

我的活动\u 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" />

我的适配器类是MyAdapter.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);

}
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;
}
package.company.abhi.totalenglish;
公共MyAdapter(上下文上下文,字符串[]主主题,字符串[]img,字符串[]说明){
super(上下文,R.layout.single_行,R.id.textView,MainTopic);
this.context=context;
this.MainTopic=MainTopic;
这个。img=img;
这个。描述=描述;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutInflater LayoutInflater=(LayoutInflater)context.getSystemService(context.LAYOUT\u INFLATER\u SERVICE);
视图行=布局更平坦。充气(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;ifor循环最终将设置imageView中的位置值。但位置从0开始,所以必须在每个值中添加1。 替换你这个循环

for (int i =1;i<=position;i++) {
    imageView.setText(""+i);

}

只需更换此循环:

for (int i =1;i<=position;i++) {
  imageView.setText(""+i);
}

注意:您不需要循环,因为getView函数正在按其位置逐行膨胀。它不会同时膨胀所有行。

更改imageView.setText(“+(位置+1))的for(int i=1…{};现在不工作从11开始为什么在那里使用for循环?您正在设置文本视图的文本,直到它到达位置。因此视图的最终文本始终是要显示的项目的当前位置。请删除for循环,并使用“imageView.setText”(“+位置”)设置文本'完成了。实际的错误是,你用1而不是0开始循环。如果你不想让它从0开始,请使用@Luis Miguel Sierra的解决方案。@GPuschka就是这样。我猜他必须用(位置+1)将索引显示为1而不是0 Hanks dude,我终于这样做了。我将我的for循环更改为for(int i=1;i)