0

データ満載のホームページを作ろうとしています。これまでのところ、リスト ビューにデータを入力してきましたが、ホームページには 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();
4

1 に答える 1

0

カスタム listView を使用しようとしましたか。Json でデータを受信して​​いる場合は、カスタム listView を使用する方がはるかに優れています。

これは、リストのすべての行にテキストと画像を追加する方法を説明する、どういうわけか良いチュートリアルです

http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/

また、独立してスクロールする 3 つの列が必要な場合は、3 つの listView を使用できます。

于 2012-05-09T21:01:14.673 に答える