首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在为英语学习开发一个简单的教程应用程序,我在设置编号位置方面遇到了麻烦。

我正在为英语学习开发一个简单的教程应用程序,我在设置编号位置方面遇到了麻烦。
EN

Stack Overflow用户
提问于 2016-06-17 10:16:27
回答 2查看 61关注 0票数 1

MainActivity.java

代码语言:javascript
复制
    @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文件是:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>



    <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" />
</RelativeLayout>

MyAdapter.java

代码语言:javascript
复制
    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;
    }
}

我只想把一个放在第一排。

EN

回答 2

Stack Overflow用户

发布于 2016-06-17 11:05:40

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

代码语言:javascript
复制
for (int i =1;i<=position;i++) {
    imageView.setText(""+i);

}

使用

代码语言:javascript
复制
imageView.setText(""+(position+1));
票数 2
EN

Stack Overflow用户

发布于 2016-06-17 11:07:38

只需替换这个循环:

代码语言:javascript
复制
for (int i =1;i<=position;i++) {
  imageView.setText(""+i);
}

通过这一点:

代码语言:javascript
复制
imageView.setText(String.valueOf(position + 1));

注意:您不需要循环,因为getView函数是用它的位置逐行膨胀。它不是同时膨胀所有的行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37878968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档