0

誰かが私を助けてくれないかと思っていました。私はそれを見つけることができないので、私が間違っていることを私に伝えるために新鮮な目を持っているのは良いかもしれません。些細なことかもしれませんが、見えません。私は基本的に、クリックするとカスタムダイアログを表示し、ユーザーにSDカードまたはデバイスメモリのどちらかを選択するように求めるボタンがあります。ほとんどの場合、次のようなエラーが発生しているだけで、すべてが正しいと感じています。line71のonClickエラー。

他の誰かが問題を見ることができますか。

    public class MediaActivity extends Activity 
{
    /** Called when the activity is first created. */

      AlertDialog.Builder builder;
      AlertDialog alertDialog;
      ImageButton sdImage;
      ImageButton deviceImage;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button startApp = (Button) findViewById(R.id.startButton);



        startApp.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) 
            {
                Context mContext = MediaActivity.this;
                LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
                View layout = inflater.inflate(R.layout.custlayout, (ViewGroup) findViewById(R.id.layout_root));

                TextView text = (TextView) layout.findViewById(R.id.text);
                //text.setText("Upload an Image or Video");

                builder = new AlertDialog.Builder(mContext);
                builder.setView(layout);
                alertDialog = builder.create();

                sdImage= (ImageButton) findViewById(R.id.sdImageButton);
                deviceImage = (ImageButton) findViewById(R.id.deviceImageButton);


                sdImage.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View arg0) 
                    {
                         // Write your code here to invoke YES event
                        Intent goToSD = new Intent(arg0.getContext(),
                            Sdcard.class);
                        startActivity(goToSD);

                    }
                });

                deviceImage.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) 
                    {
                        // TODO Auto-generated method stub

                    }
                });

                // Showing Alert Message

                alertDialog.show();


            }
        });



    }  


}

しばらくの間これに問題を抱えていたので、私はこれに本当に感謝しています。それはおそらく私が見落としているある種のばかげた間違いです。

ありがとうございました!

LOGCATの更新:

06-26 17:54:35.119:D / AndroidRuntime(24486):VMのシャットダウン06-26 17:54:35.119:W / dalvikvm(24486):threadid = 1:スレッドがキャッチされない例外で終了します(group = 0x40015560)06 -26 17:54:35.119:E / AndroidRuntime(24486):致命的な例外:メイン06-26 17:54:35.119:E / AndroidRuntime(24486):java.lang.NullPointerException 06-26 17:54:35.119:E /AndroidRuntime(24486):at my.edu.org.MediaActivity $ 1.onClick(MediaActivity.java:71)06-26 17:54:35.119:E / AndroidRuntime(24486):at android.view.View.performClick(View .java:2485)06-26 17:54:35.119:E / AndroidRuntime(24486):android.view.View $ PerformClick.run(View.java:9080)06-26 17:54:35.119:E / AndroidRuntime (24486):android.os.Handler.handleCallback(Handler.java:587)06-26 17:54:35.119:E / AndroidRuntime(24486):android.os.Handler.dispatchMessage(Handler.java:92) 06-26 17:54:35.119:E / AndroidRuntime(24486):android.os.Looper.loop(Looper.java:130)06-26 17:54:35.119:E / AndroidRuntime(24486):android.app.ActivityThread.main(ActivityThread.java :3683)06-26 17:54:35.119:E / AndroidRuntime(24486):at java.lang.reflect.Method.invokeNative(Native Method)06-26 17:54:35.119:E / AndroidRuntime(24486):at java.lang.reflect.Method.invoke(Method.java:507)06-26 17:54:35.119:E / AndroidRuntime(24486):com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java :850)06-26 17:54:35.119:E / AndroidRuntime(24486):com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)06-26 17:54:35.119:E / AndroidRuntime (24486):dalvik.system.NativeStart.main(ネイティブメソッド)で//////////////////////ドロイダーの提案からのonClickの実装。130)06-26 17:54:35.119:E / AndroidRuntime(24486):android.app.ActivityThread.main(ActivityThread.java:3683)06-26 17:54:35.119:E / AndroidRuntime(24486):at java.lang.reflect.Method.invokeNative(Native Method)06-26 17:54:35.119:E / AndroidRuntime(24486):at java.lang.reflect.Method.invoke(Method.java:507)06-26 17 :54:35.119:E / AndroidRuntime(24486):com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:850)06-26 17:54:35.119:E / AndroidRuntime(24486):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)06-26 17:54:35.119:E / AndroidRuntime(24486):dalvik.system.NativeStart.main(ネイティブメソッド)//// //////////////////droiderの提案からのonClickの実装。130)06-26 17:54:35.119:E / AndroidRuntime(24486):android.app.ActivityThread.main(ActivityThread.java:3683)06-26 17:54:35.119:E / AndroidRuntime(24486):at java.lang.reflect.Method.invokeNative(Native Method)06-26 17:54:35.119:E / AndroidRuntime(24486):at java.lang.reflect.Method.invoke(Method.java:507)06-26 17 :54:35.119:E / AndroidRuntime(24486):com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:850)06-26 17:54:35.119:E / AndroidRuntime(24486):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)06-26 17:54:35.119:E / AndroidRuntime(24486):dalvik.system.NativeStart.main(ネイティブメソッド)//// //////////////////droiderの提案からのonClickの実装。3683)06-26 17:54:35.119:E / AndroidRuntime(24486):at java.lang.reflect.Method.invokeNative(Native Method)06-26 17:54:35.119:E / AndroidRuntime(24486):at java .lang.reflect.Method.invoke(Method.java:507)06-26 17:54:35.119:E / AndroidRuntime(24486):com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: 850)06-26 17:54:35.119:E / AndroidRuntime(24486):com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)06-26 17:54:35.119:E / AndroidRuntime( 24486):dalvik.system.NativeStart.main(ネイティブメソッド)で//////////////////////ドロイダーの提案からのonClickの実装。3683)06-26 17:54:35.119:E / AndroidRuntime(24486):at java.lang.reflect.Method.invokeNative(Native Method)06-26 17:54:35.119:E / AndroidRuntime(24486):at java .lang.reflect.Method.invoke(Method.java:507)06-26 17:54:35.119:E / AndroidRuntime(24486):com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: 850)06-26 17:54:35.119:E / AndroidRuntime(24486):com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)06-26 17:54:35.119:E / AndroidRuntime( 24486):dalvik.system.NativeStart.main(ネイティブメソッド)で//////////////////////ドロイダーの提案からのonClickの実装。E / AndroidRuntime(24486):com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:850)06-26 17:54:35.119:E / AndroidRuntime(24486):com.android.internal .os.ZygoteInit.main(ZygoteInit.java:608)06-26 17:54:35.119:E / AndroidRuntime(24486):dalvik.system.NativeStart.main(ネイティブメソッド)///////// /////////////droiderの提案からのonClickの実装。E / AndroidRuntime(24486):com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:850)06-26 17:54:35.119:E / AndroidRuntime(24486):com.android.internal .os.ZygoteInit.main(ZygoteInit.java:608)06-26 17:54:35.119:E / AndroidRuntime(24486):dalvik.system.NativeStart.main(ネイティブメソッド)///////// /////////////droiderの提案からのonClickの実装。

@Override
    public void onClick(View v) 
    {
        switch(v.getId())
        {
        case R.id.sdImageButton: 
            Intent goToSD = new Intent(v.getContext(),
                    Sdcard.class);
            startActivity(goToSD);
            Toast.makeText(getApplicationContext(), "sdclicked", Toast.LENGTH_SHORT).show();
            break;

        case R.id.deviceImageButton:
            break;

        default:
            break;
        }


    }  
4

1 に答える 1

0

私の答えを編集しました:

OnCreateメソッドでsdImageおよびdeviceImageImageButtonsを初期化する必要があります。

現在、ヌル状態にある2つのImageButtonにOnClickListenerを割り当てています。

これを変える:

      @Override 
            public void onCreate(Bundle savedInstanceState) 
            { 
                super.onCreate(savedInstanceState); 
                setContentView(R.layout.main); 
                Button startApp = (Button) findViewById(R.id.startButton

    ); 

to this:

@Override     
    public void onCreate(Bundle savedInstanceState)     
    {     
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.main);     
        Button startApp = (Button) findViewById(R.id.startButton);
        sdImage= (ImageButton) findViewById(R.id.sdImageButton);      
        deviceImage = (ImageButton) findViewById(R.id.deviceImageButton);       
于 2012-06-27T00:01:38.003 に答える