0

私は周りを調べましたが、私が達成しようとしていることを助けるものを見つけることができません. 私の Android アプリでは、サーバーにいくつかのデータを要求できるようにしたいと考えています。そのデータが返されたときに、1 つのディスプレイに収まりきらないほどのデータがあるため、スクロールビューを作成したいと考えています。私がこれを行っている理由は、データがあまりにも頻繁に更新され、アプリ (imaginee twitter) の継続的な更新を行うことができないためです。スクロール ビューにデータを入力する XML linearlayout を既に作成しました。ビューを作成する最善の方法を見つける必要があります。

これが可能ないくつかの方法についてブレインストーミングを行い、可能であれば最も実用的な方法を探しています。

  1. データを XML フィードとして渡す - これにより、サーバーからフィードされたすべてのデータを実行し、XML タグを使用してコンテンツをプルし、レイアウトの適切な場所に配置できると思います。次に、次のレイアウトを作成し、そこから進みます。

  2. サーバーから完全なレイアウト XML を渡す - これによりレイアウトを構築できますが、すべてのデータを渡すため、onclick をトリガーするボタンをレイアウト上に作成できなくなると思います。仕事をすることができる匿名のリスナーがいることは知っていますが、この場合にそれをトリガーする方法がよくわかりません。

私は3分の1を持っていましたが、現時点では私を逃れています。どんな助けでも大歓迎です。

4

2 に答える 2

4

これを試して、

 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();
            }


        }

ID button_list の linearlayout を追加したレイアウト xml ファイルを作成しました。

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>
于 2013-02-28T06:01:49.663 に答える
0

この応答に時間がかかって申し訳ありません。私は他のことで忙しく、コーディングできませんでした。それは本当に良かったのですが、それは私が進んでボタンを作成している場合に限られます. レイアウトを膨らませているので、既存のボタンをそのまま選択して選択する必要があります。

ボタン thisbutton = (ボタン)findViewById(R.id.buttonid);

この後、onclicklistener を構築して、新しいビューをレイアウトに追加できます。でも助けてくれてありがとう!あなたのスクリプトは、何をする必要があるかを特定するために正しい方向を指していました.!

于 2013-04-11T12:35:52.820 に答える