1

以下のコードは機能しますが、それ自体を呼び出すと、チャートのメイン ビュー全体が置き換えられます。

問題は、startActivity(chart); でチャート アクティビティを開始する方法にあると思います。私の断片で。削除すると、フラグメントは置き換えなしで正常に機能します。

どうすればメインビューに送信できますか???

public class Graph extends Fragment {

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


    // LineGraph - class which draws the graph using achartengine
    final LineGraph lineGraph = new LineGraph();
    final Intent chart = lineGraph.getIntent(inflater.getContext());

    startActivity(chart);

    return inflater.inflate(R.layout.graph1, container, false);  

}

}

ここでアクティビティ:

    public class MainCharts extends Activity {
    Button btn1;

    @TargetApi(11)
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dash_app);

        btn1=(Button)findViewById(R.id.button1);

        FragmentManager fm = getFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();

        StartFragment myFragment = new StartFragment();
        ft.add(R.id.myFragment, myFragment);
        ft.commit();

        btn1.setOnClickListener(btnOnClickListener);

    }

    Button.OnClickListener btnOnClickListener = new Button.OnClickListener(){

        @SuppressLint("NewApi")
        @Override
        public void onClick(View v){

            Fragment newFragment;

            newFragment = new Graph();

            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.replace(R.id.myFragment, newFragment);
            transaction.addToBackStack(null);
            transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
            transaction.commit();
        }
    };
}
4

1 に答える 1

4

フラグメント内にAChartEngineチャートを追加する方法の例については、これを参照してください。

于 2012-10-15T19:42:07.307 に答える