0

チャートといくつかのボタンを含むレイアウトをonCreateViewからフラグメントで返そうとしています。2つのビューを1つに組み合わせる方法がわかりません。チャートなしでチャートまたはレイアウトのみを返すことができます:

    public class ChartFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        // LineGraph - class which draws the graph using achartengine
        final LineGraph lineGraph = new LineGraph();
        final GraphicalView chart = lineGraph.getGraphicalView(inflater.getContext());
        final View view = inflater.inflate(R.layout.chart, container, false);


        Button drawChartButton = (Button) view.findViewById(R.id.button_draw_chart);

        drawChartButton.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // update chart for new data
            }
        });

        return chart; //return the chart only
        // return view; // return layout but without the chart

    }

}

アクティビティでは、次のコード:

 Button chartButton = (Button) findViewById(R.id.button_draw_chart);
    chartButton.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
        LineGraph lineGrpah = new LineGraph();

        GraphicalView testChart = lineGrpah
            .getGraphicalView(SimpleApp.this);
        layout.addView(testChart, new LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
            }
        });

およびxml:

 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical" >


   <LinearLayout
       android:id="@+id/chart"
       android:layout_width="600dp"
       android:layout_height="350dp"
       android:layout_margin="15dp" >

   </LinearLayout>

   <Button
       android:id="@+id/button_draw_chart"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/button_draw_chart" />

</LinearLayout>

正しく動作しますが、これをフラグメントで行う方法がわかりません。

4

1 に答える 1

0

のメソッドonCreateView()で記述したコードを適応させるだけで、具体的には次のようになります。chartButtononClick()

view.addView(chart, new LayoutParams(
        LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        }
    });

その後、を返しviewます。

于 2012-04-22T10:58:47.930 に答える