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

时间:2016-06-17 10:16:28

标签: java android listview

请帮我解决这个问题我很高兴如果你为我解决这个问题

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

}

}

我的 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" />

我的Adapter类是 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;
}

}

先谢谢了 我只想把一个放在一排。

Here you can see the image

2 个答案:

答案 0 :(得分:2)

你的for循环最终是在imageView中设置位置值。但是位置从0开始,所以你必须在每个中加1。 替换你这个循环

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

}

imageView.setText(""+(position+1));

答案 1 :(得分:0)

只需更换此循环:

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

由此:

imageView.setText(String.valueOf(position + 1));

注意:您不需要循环,因为getView函数会逐行扩展它的位置。它不会同时给所有行充气。