Java 如何在for循环中自动增加变量名?
API级别:12(Android 3.1) 应用程序背景:通过我的Android应用程序,我向我们的web服务器MySQL数据库发送请求,以检索公司。所有这些都很好。最初,我让返回的数据填充一个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中是可能的还是有更好的方法 以下是我认为它将如何工作
列表视图
,但为了获得老板喜欢的视觉效果,我有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集