我的申请有问题。我正在尝试在linearlayout中生成多个imageview。图像必须由我的for循环创建(我从JSONArray获取值)。 我没有错误但是我的设备上没有显示错误。我无法弄清楚我的故事在哪里。
这是我的XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:id="@+id/layout_netdetails"
tools:context="ch.gaspardrosay.testapp.NetStatusDetails">
</LinearLayout>
这是我的java:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_net_status_details);
LinearLayout layout = (LinearLayout)findViewById(R.id.layout_netdetails);
iIdStatus = getIntent().getExtras().getString("netdata_suivi");
try{
JSONArray jsArray = new JSONArray(iIdStatus);
for(int i = 0; i < jsArray.length(); i++){
JSONObject tempJson = jsArray.getJSONObject(i);
// Traitement
String sStatus = (String)tempJson.get("status_suivi");
String sSuivi = (String)tempJson.get("suivi");
int iNoStatus = Integer.parseInt(sStatus);
switch(iNoStatus){
case 1:
sStatus = "red.png";
break;
case 2:
sStatus = "orange.png";
break;
case 3:
sStatus = "green.png";
break;
case 4:
sStatus = "blue.png";
break;
case 5:
sStatus = "green-orange.png";
break;
}
Log.i("Status image", sStatus );
ImageView imageView = new ImageView(NetStatusDetails.this);
ViewGroup.LayoutParams imageViewLayoutParams = new ViewGroup.LayoutParams(20,20);
imageView.setLayoutParams(imageViewLayoutParams);
imageView.setBackgroundResource(ITToolsMainActivity.GET_RESOURCES.getIdentifier(sStatus, "drawable", ITToolsMainActivity.PACKAGE_NAME));
layout.addView(imageView);
}
}
catch(JSONException e){
e.printStackTrace();
}
}
感谢您的帮助!
修改
我按照建议尝试了Hierarchyviewer。无法得到任何结果,这就是我得到的结果:
答案 0 :(得分:0)
好的,我发现了我的错误...一切正常,我只是在获取每个资源名称之前添加了“.png”。 删除它们,现在它工作正常。