我有一個活動和3個片段。在主要活動的底部,我有3個按鈕用於切換活動片段。每個片段都包含一個ListView,你認爲這是一種很好的開發方式嗎?我已經開發了第一個從服務器上下載json的Fragment,解析並添加元素到ListView,但是當我按下按鈕切換到Fragment2時,第一個保持不變。帶有ListView的片段保留
這是主要活動,帶有listView的片段在某些TextView和一個ImageView內使用自定義適配器。如果我刪除listView,碎片更改沒有麻煩。
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.widget.TextView;
import android.widget.Toast;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
public class Home extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_home);
}
public void selectFrag(View view) {
Fragment fr;
int stringTitleID = R.string.title_fragment1;
if(view == findViewById(R.id.imgBtn3))
{
fr = new FragmentThree();
stringTitleID = R.string.title_fragment3;
}
else if(view == findViewById(R.id.imgBtn2))
{
fr = new FragmentTwo();
stringTitleID = R.string.title_fragment2;
}
else
{
fr = new FragmentOne();
stringTitleID = R.string.title_fragment1;
}
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.fragment_place, fr);
fragmentTransaction.commit();
// I change the title in the top_bar
TextView textViewActivityTitle = (TextView) findViewById(R.id.textViewActivityTitle);
textViewActivityTitle.setText(getResources().getString(stringTitleID).toString());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.home, menu);
return true;
}
/*
* This functions clears the app cache. The json responses are stored in che cacheDir or cacheExternalDir.
* I clean them when the app is started. I only use the cache between the Fragments
*/
}
碎片解決方案是一個很好的解決方案嗎?爲什麼帶有listview的片段保持不變? 我應該使用ListFragment嗎?
非常感謝。
我的問題是在XML。我正在使用 而不是