私の対応では、一部のLinearLayoutで断片化されています(たとえば、IDはLL1です)。 LL1の背景色を変更するにはどうしたらいいですか?そこエラーはありませんが、私は、アプリケーションを起動しようとするとフラグメント内の色を変更してください
SharedPreferences pref = this.getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE);
getView().findViewById(R.id.LL1).setBackgroundColor(Color.parseColor(pref.getString(TRANSP_KEY, "#CC") + pref.getString(FCOLOR_KEY, "5556FF")));
:
Unfortunately application has stopped
Fragment.javaでのOnCreateイベントで:私はsharedpreferencesでそれをやりたい は(アルファおよびカラー2つの値を持ちます)私が試した:
LinearLayout LL= (LinearLayout) getView().findViewById(R.id.LL1);
LL.setBackgroundColor(Color.WHITE);
が、同じ問題がある
おそらくsetbackgroundは機能しません。削除されたアプリケーションは動作しますが、xmlファイルのデフォルトの色があります。
私は間違っていますか?
fragment.java:
package com.hgyghyfghyu.apkana40;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import static com.hgyghyfghyu.apkana40.AppData.FCOLOR_KEY;
import static com.hgyghyfghyu.apkana40.AppData.TRANSP_KEY;
import static com.hgyghyfghyu.apkana40.AppData.prefdata;
import static com.hgyghyfghyu.apkana40.UserData.editor;
import static com.hgyghyfghyu.apkana40.UserData.pref;
/**
* A simple {@link Fragment} subclass.
*/
public class TrainerMenu extends Fragment {
public TrainerMenu() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
SharedPreferences pref = this.getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE);
LinearLayout imageView = (LinearLayout) getView().findViewById(R.id.trainermenutrainersbtn);
imageView.setBackgroundColor(Color.WHITE);
// getView().findViewById(R.id.trainermenuadbtn).setBackgroundColor(Color.parseColor(pref.getString(TRANSP_KEY, "#CC") + pref.getString(FCOLOR_KEY, "33777F")));
//getView().findViewById(R.id.trainermenusettingsbtn).setBackgroundColor(Color.parseColor(pref.getString(TRANSP_KEY, "#CC") + pref.getString(FCOLOR_KEY, "5556FF")));
// getView().findViewById(R.id.trainermenuinfobtn).setBackgroundColor(Color.parseColor(pref.getString(TRANSP_KEY, "#CC") + pref.getString(FCOLOR_KEY, "5556FF")));
//getView().findViewById(R.id.trainermenugroupsbtn).setBackgroundColor(Color.parseColor(pref.getString(TRANSP_KEY, "#CC") + pref.getString(FCOLOR_KEY, "5556FF")));
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_trainer_menu, container, false);
}
}
アプリが停止した参照です。 –
どこで確認できますか?デバッグが成功しました – littlewombat
スタックトレースを使わずにコードからのみ実行すると、 'setBackgroundColor()'を呼び出す前に 'LL'が' null'でないことを確認し、(ii) onCreateView() 'の後に' getView() 'を呼び出す* Edit:*実際には、onCreate()で上記のコードを実行しようとしているように、実際には、この時点で 'getView()'は 'null'を返します – PPartisan