我有兩個不同的佈局文件,我想用於修改相同的數據,我是切換到我的佈局「編輯視圖」,允許用戶修改圖形數據,然後允許他們切換回顯示詳細圖形的「詳細視圖」(使用androidplot庫)。在Android活動中切換2個佈局
我的問題是,當切換回我的「編輯視圖」時,我的圖形線條消失,只有軸線繪製(因此我的圖形視圖調用了佈局切換和onDraw())。一切都存儲在同一個活動,所以我不明白爲什麼這不起作用?
這些行存儲在Graph View對象本身中,它應該是持久性的,因爲它是我的活動中存儲的變量。
我使用這兩種方法在點擊按鈕上切換佈局文件。
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,並且我想合併來自兩個佈局的信息,並將其放置在第三個佈局的textView中,那我該怎麼做? –