Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在for循环中自动增加变量名?_Java_Android_Xml - Fatal编程技术网

Java 如何在for循环中自动增加变量名?

Java 如何在for循环中自动增加变量名?,java,android,xml,Java,Android,Xml,API级别:12(Android 3.1) 应用程序背景:通过我的Android应用程序,我向我们的web服务器MySQL数据库发送请求,以检索公司。所有这些都很好。最初,我让返回的数据填充一个列表视图,但为了获得老板喜欢的视觉效果,我有6个文本视图。(该应用程序设计为只能在一台设备上工作,即三星Galaxy Tab 10.1) 问题:因此,在解析返回的数据时,我有一个for循环。我想做的是,自动递增一个变量,即公司+I然后I++。这在Java中是可能的还是有更好的方法 以下是我认为它将如何工作

API级别:12(Android 3.1)

应用程序背景:通过我的Android应用程序,我向我们的web服务器MySQL数据库发送请求,以检索公司。所有这些都很好。最初,我让返回的数据填充一个
列表视图
,但为了获得老板喜欢的视觉效果,我有6个
文本视图
。(该应用程序设计为只能在一台设备上工作,即三星Galaxy Tab 10.1)

问题:因此,在解析返回的数据时,我有一个
for
循环。我想做的是,自动递增一个变量,即
公司+I
然后
I++
。这在Java中是可能的还是有更好的方法

以下是我认为它将如何工作的一个例子:

int length = 5;

//parse JSON data
try{
    JSONArray jArray = new JSONArray(result);
    for(int i=0; i < length; i++){

        TextView company = (TextView)findViewById(R.id.company_ + i);

        JSONObject jObject = jArray.getJSONObject(i);
            String businessName = jObject.getString("businessName");
            double distance = jObject.getDouble("distance");

            double distRound = 1e5;
            double roDistance = Math.round(distance * distRound) / distRound;

            company.setText(businessName);
            company.append(Html.fromHtml("<br>"));
            company.append("Approximate distance:   " + roDistance + " feet.");

你真的确定这条线吗

TextView company_select = company_ + i; 
??? 该行抛出错误(异常)

这句话的意思是什么,你想实现什么

只需将textview的id存储在int数组中

int[] textviewIds = { R.id.company_id_1,
        R.id.company_id_2, R.id.company_id_3,R.id.company_id_4,R.id.company_id_5...};
并在for循环中使用此数组

TextView company_select = (TextView)findViewById(textviewIds[i]);

你真的确定这条线吗

TextView company_select = company_ + i; 
??? 该行抛出错误(异常)

这句话的意思是什么,你想实现什么

只需将textview的id存储在int数组中

int[] textviewIds = { R.id.company_id_1,
        R.id.company_id_2, R.id.company_id_3,R.id.company_id_4,R.id.company_id_5...};
并在for循环中使用此数组

TextView company_select = (TextView)findViewById(textviewIds[i]);
您可以使用
然后调用将是
TextView company\u select=company\u+Integer.toString(i)

您可以使用

然后调用将是
TextView company\u select=company\u+Integer.toString(i)

如果Textview保持不变,则可以执行此操作

int[] companyIds = { R.id.company_id_1,
        R.id.company_id_2, R.id.company_id_3,...};
在代码中这样做

TextView company_select = (TextView)findViewById(companyIds[i]);

如果Textview保持不变,则可以执行此操作

int[] companyIds = { R.id.company_id_1,
        R.id.company_id_2, R.id.company_id_3,...};
在代码中这样做

TextView company_select = (TextView)findViewById(companyIds[i]);

你这样做是不可能的

你可以使用反射,但那太过分了。 试试下面的方法

List<Integer> companies= Arrays.asList(R.id.company_1,R.id.company_2,R.id.company_3,R.id.company_4,R.id.company_5);

你这样做是不可能的

你可以使用反射,但那太过分了。 试试下面的方法

List<Integer> companies= Arrays.asList(R.id.company_1,R.id.company_2,R.id.company_3,R.id.company_4,R.id.company_5);

我需要解决我的问题,我马上就来。我有
company\u 1
company\u 5
作为xml中的id,我的意思是,是否有一种方法可以增加
\u 1
循环的
每次传递?对不起,这个问题。我需要解决我的问题,我马上就来。我有
company\u 1
company\u 5
作为xml中的id,我的意思是,是否有一种方法可以增加
\u 1
循环的
每次传递?对此问题很抱歉。另外,可以添加“最终静态专用”并删除长度,只需使用companyId.length确保循环遵循实际的ID集。此外,可以添加“最终静态专用”并删除长度,只需使用companyId.length确保循环遵循实际的ID集