如何通过编程方式添加视图时引用对象?

时间:2013-12-09 09:50:32

标签: android android-layout android-view

我有JSON数据,想将它们添加到EditText

JSON

{
   "Data":[
       {
         "Name":"benz",
         "Display":"slk200",
         "Value":"1"
      },
      {
         "Name":"bmw",
         "Display":"z4",
         "Value":"2"
      },
      {
         "Name":"toyota",
         "Display":"supra",
         "Value":"3"
      },
      {
         "Name":"honda",
         "Display":"civic",
         "Value":"4"
      }
   ]
}

爪哇

LinearLayout placeHolder = (LinearLayout) findViewById(R.id.place_holder);
for (Data f : dataList) {
    EditText ed = new EditText(context);
    ed.setHint(f.display);
    placeHolder.addView(ed);
}

如果我想在点击某个按钮后引用EditText对象 我该怎么办?

3 个答案:

答案 0 :(得分:1)

解析Json请求,

String jsonString;
JSONObject reader = new JSONObject(jsonString);

JSONObject dataJSON  = reader.getJSONObject("Data");
displayText = dataJSON.getString("Display");

EditText ed = new EditText(context);
ed.setHint(displayText );

以下链接可能对您有用

1- TutorailzPoint-JsonParsing

2- AndroidHive-Json

答案 1 :(得分:1)

EditText继承自TextView,后者继承自View。这意味着,您可以使用view.setId(int)id分配给动态EditText视图。

然后,您可以调用findViewById(EditText id you gave it)来获取EditText视图。

例如,指定一个id:

EditText ed = new EditText(context);
ed.setId(99);

并引用新的EditText视图:

EditText tmpEd = (EditText) findViewById(99);
tmpEd.setText("a test string");

答案 2 :(得分:-1)

对于按钮上的部分,您可以实现onClickListener。 如果您已在布局中创建了一个按钮。
参考:

Button b1 = (Button)findViewById(R.id.<buttonid>);

然后,您可以为按钮创建一个onClickListener,用于侦听单击。

b1.setOnClickListener(new OnClickListener(){
    public void onClick(View v)
    {
            EditText e1 = (EditText) findViewById(R.id.<edittextid>);
            //get records
            e1.setText(<next record>);
    }

});