同じデータを変更するために使用したいレイアウトファイルが2つあります。レイアウトを編集ビューに切り替えてグラフデータを変更できるようにしました詳細なグラフを表示する「詳細ビュー」に戻ることができます(androidplotライブラリを使用)。アンドロイドアクティビティで2つのレイアウトを切り替える
私の問題は、私の「編集ビュー」に切り替えると、私のグラフの線がなくなり、グラフの表示のためにレイアウトが切り替わり、onDraw()が呼び出されるということです。すべてが同じアクティビティ内に格納されているので、なぜこれが機能していないのかわかりません。
行は、グラフビューオブジェクト内に格納されます。グラフビューオブジェクトは、アクティビティ内に格納されている変数であるため、永続化する必要があります。
私はこれらの2つの方法をボタンクリックでレイアウトファイルを切り替えるために使用します。
public class GraphLibActivity extends Activity {
private Graph graph;
private boolean editView;
private static TextView coordTextView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
editView = true;
setContentView(R.layout.graphlib);
graph = (Graph) findViewById(R.id.graph);
coordTextView = (TextView)findViewById(R.id.currentCoords);
(lots of calculations)
graph.addLine(gelHistogramPoints, linePaint);
graph.invalidate();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
if(editView == true){
inflater.inflate(R.menu.activity_menu, menu);
}else{
inflater.inflate(R.menu.detailed_view_menu, menu);
}
return true;
}
public boolean onPrepareOptionsMenu(Menu menu){
menu.clear();
MenuInflater inflater = getMenuInflater();
if(editView == true){
inflater.inflate(R.menu.activity_menu, menu);
}else{
inflater.inflate(R.menu.detailed_view_menu, menu);
}
graph.invalidate();
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.detailed_view:
editView = false;
setContentView(R.layout.imagegraph);
return true;
case R.id.edit_view:
editView = true;
setContentView(R.layout.editgraph);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
ありがとう、これは素晴らしい作品です。 –
'' next'や 'first'ビューであれば、特定のビューを推測せずに表示したいと思っています:' vf.setDisplayedChild(vf.indexOfChild(vfChildView)) ' – derenio
あなたの例では、すべてのデータ?両方のレイアウトにtextEditがあり、2つのレイアウトの情報をマージして3つ目のレイアウトのtextViewに配置したいのですが、どうすればいいですか? –