以编程方式将ImageView的倍数添加到LinearLayout

时间:2014-08-28 13:23:38

标签: java android

我的申请有问题。我正在尝试在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。无法得到任何结果,这就是我得到的结果:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

好的,我发现了我的错误...一切正常,我只是在获取每个资源名称之前添加了“.png”。 删除它们,现在它工作正常。