私は診断方法がわからない奇妙なことが起こっています。ここに問題があります。ランドスケープでアプリを開くときにListViewデータが表示されない
効果: アプリをポートレートモードで開いてから横向きモードにする - 両方の向きが正しく設定されます。
機能しない: ランドスケープモードでアプリを開く - リストビューは空です。しかし、もし私がそれを人口に変えれば、それは人口に住みついてから、景色に戻ります。
これはアプリが最初に読み込まれたときにのみ、電話機が横向きになっている場合にのみ発生します。アプリが開いていて、画面がオフになっていて、電話がランドスケープになっていて、画面がオンになっている場合、この現象は発生しません。
追加情報: このアプリケーションでは、ViewPagerを使用しており、最初のセクションのフラグメントが開き、フラグメントが開始される前にリストビューのデータが読み込まれます。これは、両方の向きで正しく発生します。
私は何が起こっているかを診断するために探し始めることができる任意のアイデアですか?
- 編集 有用なコードはわかりませんが、ここにはいくつかあります。私は、プログラムの流れをデバッグしてトレースしましたが、すべてが正しく読み込まれますが、ListViewはありません。渡されたリストにデータが入力され、アレイアダプタがビューを正しく生成していますが、すべてが正しいように見えますが、画面に何も表示されません。再び、これはアプリの最初の読み込み時のみで、電話機はランドスケープとして開始されます。ポートレートとバックにすばやくフリップしても問題ありません。
MainActivityののonCreateマイナスページ変更リスナー
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.rootactivitylayout);
//create default and upgrade database
DBHelper db = new DBHelper(getApplicationContext());
db.closeDB();
((ExtendedApp) this.getApplication()).initializeGlobals();
PopulateUpgradeList(this);
PopulateShipList(this);
PopulateSquadronList(this);
PopulateObjectiveList(this);
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
mViewPager.setOffscreenPageLimit(2);
ページフラグメントのonCreateViewついに
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
isLoading = true;
thiscontext = container.getContext();
//handle ships
//------------------------
View view = inflater.inflate(R.layout.fragarmada, container, false);
ArrayList<Ship> tmpList = justShipTypes();
ShipAdapt = new AA_Armada_Ships(thiscontext, tmpList);
ListView tmplv = (ListView) view.findViewById(R.id.lvAShipList);
tmplv.setAdapter(ShipAdapt);
tmplv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
shipPopup((Ship) view.getTag());
}
});
アレイアダプタのコード最後に
私たちはTEH CODE – Blundell
アイデアを必要としています:あなたが思うすべての場所にログを追加してください*コードが実行されているログを読んでください – Blundell
私はあなたと同じ問題を抱えています。もともと[Wallison Francisco](https://stackoverflow.com/users/7658080/wallison-francisco) –