データ満載のホームページを作ろうとしています。これまでのところ、リスト ビューにデータを入力してきましたが、ホームページには 3 つのデータがあり、それらはすべて個別にスクロールするため、リスト ビューに入れることができません。テーブルレイアウトを作成したいので、次のようになります。
header
xml header
table row
xml header 2
table row
xml header 3
table row
table row
table row
table row
table row
各行に画像とテキストビューを表示したいだけでなく、xmlヘッダー3の下にもデータに基づいて行をロードしたいので、5つのデータがある場合は5行などをロードします.
また、表の行に on Click Event リスナーを含めることもできます。
これが私がこれまでに試したことです:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white">
<include layout="@layout/header" />
<include layout="@layout/redcell" />
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="60dp" >
</TableRow>
<include layout="@layout/redcell" />
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="60dp" >
</TableRow>
<include layout="@layout/redcell" />
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</TableLayout>
ここにデータをロードします
public void loadData(){String myhash = buildHmacSignature(apiKey, fixturesFeedURL);
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(fixturesFeedURL);
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("requestToken", myhash));
pairs.add(new BasicNameValuePair("apiUser", apiUser));
try {
post.setEntity (new UrlEncodedFormEntity(pairs));
HttpResponse response = client.execute(post);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String json = reader.readLine();
fulldata = String.valueOf(json);
Log.v("myApp","newsdata" + fulldata);
newsList = new ArrayList<String>();
JSONObject obj = new JSONObject(json);
JSONObject objData = obj.getJSONObject("data");
JSONArray jArray = objData.getJSONArray("news");
for(int t = 0; t < newsAmount; t++){
JSONObject newsTitleDict = jArray.getJSONObject(t);
newsList.add(newsTitleDict.getString("title"));
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setListAdapter ( new ArrayAdapter<String>(this, R.layout.single_item, newsList));
ListView list = getListView();
list.setTextFilterEnabled(true);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
checkPreferences();
loadData();