0

これは私のクラスの onCreate(...) メソッドです:

    protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.editor);
            setRequestedOrientation(1);

            v = new SView(this);
            v.setOnTouchListener(this);
            //v.setZOrderOnTop(true);
            //v.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
            setContentView(v);

            ImageView back = (ImageView) findViewById(R.id.IVEditor);
            bm = loadPhoto("photo", bm);
            if(bm != null)
            {
                    //This Section is giving me the error

                back.setImageBitmap(bm);

            }
        }

これがエラーです。ダブルクリックすると、上の分割された部分に移動します。理由はわかりませんが:

11-09 07:42:42.624: E/AndroidRuntime(32472): Caused by: java.lang.NullPointerException
11-09 07:42:42.624: E/AndroidRuntime(32472):    at com.synlight_development.tattoo_it.Editor.onCreate(Editor.java:64)
11-09 07:42:42.624: E/AndroidRuntime(32472):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
11-09 07:42:42.624: E/AndroidRuntime(32472):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1785)
11-09 07:42:42.624: E/AndroidRuntime(32472):    ... 11 more
4

3 に答える 3

0

エディターのレイアウトファイルの内容をここに貼り付けていただけますか。そのeditor.xmlレイアウトファイルには、IDが。として定義された要素としてImageViewが必要android:id = "@+id/IVEditor"です。そうすれば、あなただけが正確なImageViewオブジェクトを取得できます。

于 2012-11-09T13:06:49.543 に答える
0

R.id.editor私が理解しているように、レイアウトをの新しいインスタンスに置き換えているようですSView。私はしばらくAndroidに触れていないので、何をするのかわかりSViewません。setContentView(R.id.Editor)しかし、私はそれがあなたの以前のものを、idを持つレイアウト要素を含まないカスタムビュー/レイアウト/whaterに置き換えることを考えることから始めますR.layout.IVEditor

そうですね、現在のレイアウトに存在しないものに画像を追加しようとしています。(レイアウトをsetContentView(v)削除し、R.id.editorを含まないSview()を配置していますR.layout.IVEditor

于 2012-11-09T13:15:03.710 に答える
0
ImageView back = (ImageView) findViewById(R.id.IVEditor);

R.id.IVEditorで設定したレイアウト内で宣言する必要がありますsetContentView

おそらくR.id.IVEditor内部で宣言されていR.layout.editorます。スイッチング

 ImageView back = (ImageView) findViewById(R.id.IVEditor);
 bm = loadPhoto("photo", bm);
 if(bm != null) {
     back.setImageBitmap(bm);
 }

  v = new SView(this);
  v.setOnTouchListener(this);
  //v.setZOrderOnTop(true);
 //v.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
  setContentView(v);

トリックを行う必要があります。R.id.IVEditorしかし、すべてが宣言されている場所に依存します。

于 2012-11-09T12:49:53.150 に答える