試試這個,
public void listButtons() {
LinearLayout layout = (LinearLayout)findViewById(R.id.button_list);
String http_url = "http://example.com/demo";
try {
URL url = new URL(http_url);
HttpURLConnection con = HttpURLConnection)url.openConnection();
if(con!=null){
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String data=br.readLine();
JSONArray jsonArray=null;
jsonArray = new JSONArray(data);
Button tv[] = new Button[jsonArray.length()];
for(int i=0;i<jsonArray.length();i++)
{
tv[i] = new Button(this);
tv[i].setText(jsonArray.getJSONObject(i).getString("name"));
tv[i].setGravity(Gravity.CENTER_HORIZONTAL);
tv[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//add your code here
}
});
layout.addView(tv[i]);
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我已經創建了我已經加了LinearLayout中與ID button_list
的main.xml文件 -
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".ResearchActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="55dp"
android:orientation="vertical"
android:id="@+id/button_list"
>
</LinearLayout>
</LinearLayout>
我在哪裏使用電視[i] .setText(jsonArray.getJSONObject(i).getString(「name」));是從XML提要獲取結果? – TheHamstring 2013-02-28 11:24:55
在我的示例中,我將名稱設置爲從上面的url返回的JSON數據的按鈕......您可以解析您的XML提要,並且可以設置該按鈕的任何文本。 – Ajit 2013-03-01 05:18:15
當我放入第一個按鈕創建時,警告「參數的左側必須是變量」 Button purch [] = new Button [tokens.length();我++]; 但令牌是我的變量,我從稍後讀取數據填充我的列表視圖。 另外我想定位一個已經存在於我的佈局中的按鈕,這個按鈕會自動定位該按鈕,還是我需要以某種方式指定它。 – TheHamstring 2013-03-29 11:25:07