2016-04-29 29 views
-1

すべては昨日までうまくいっていましたが、問題が発生したときはどこにも表示されませんでした。 ImageViewをクリックすると、この画像が表示され、画像の詳細が表示されます。しかし、場合に結果が残念ながら、アプリケーションはを停止していているImageViewのをクリックしたとき:修正方法(アクティビティjava.lang.NullPointerExceptionを開始できません)

表示画像コード:

:私は(ImageViewの)表示画像を押したときに返される

package com.vgm_versi2rev; 

import android.app.Activity; 
import android.content.DialogInterface.OnClickListener; 
import android.content.Intent; 
import android.graphics.Point; 
import android.os.Build; 
import android.os.Bundle; 
import android.view.Display; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.TextView; 

import org.json.JSONException; 
import org.json.JSONObject; 

import com.vgm_versi2rev.ImageResizer; 
import com.vgm_versi2rev.R; 
import com.vgm_versi2rev.MyImage; 


import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Point; 
import android.os.Bundle; 
import android.view.Display; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.TextView; 

import org.json.JSONException; 
import org.json.JSONObject; 

public class DisplayImage extends Activity{ 
    private MyImage image; 
    private ImageView imageView; 
    private TextView description; 
    private String jstring; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_display_image); 
     imageView = (ImageView) findViewById(R.id.display_image_view); 
     description = (TextView) findViewById(R.id.text_view_description); 
     Bundle extras = getIntent().getExtras(); 

     if (extras != null) { 
      jstring = extras.getString("IMAGE"); 
     } 
     image = getMyImage(jstring); 
     description.setText(image.toString()); 
     Display display = getWindowManager().getDefaultDisplay(); 
     Point size = new Point(); 
     display.getSize(size); 
     int width = size.x; 
     int height = size.y; 
     imageView.setImageBitmap(ImageResizer 
       .decodeSampledBitmapFromFile(image.getPath(), width, height)); 
    } 


    private MyImage getMyImage(String image) { 
     try { 
      JSONObject job = new JSONObject(image); 
      return (new MyImage(job.getString("path"),job.getString("title"), 
        job.getString("datetime"),job.getString("description"), 
        job.getString("longitude"),job.getString("latitude"))); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 


    public void btnBackOnClick(View v) { 
     startActivity(new Intent(this, MainActivityPhoto.class)); 
     finish(); 
    } 

    public void btnDeleteOnClick(View v) { 
     DAOdb db = new DAOdb(this); 
     db.deleteImage(image); 
     db.close(); 
     startActivity(new Intent(this, MainActivityPhoto.class)); 
     finish(); 
    } 

    @Override protected void onSaveInstanceState(Bundle outState) { 
     // Save the user's current game state 
     if (jstring != null) { 
      outState.putString("jstring", jstring); 
     } 
     // Always call the superclass so it can save the view hierarchy state 
     super.onSaveInstanceState(outState); 
    } 

    @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { 
     // Always call the superclass so it can restore the view hierarchy 
     super.onRestoreInstanceState(savedInstanceState); 

     // Restore state members from saved instance 
     if (savedInstanceState.containsKey("jstring")) { 
      jstring = savedInstanceState.getString("jstring"); 
     } 
    } 
} 

エラー

> 04-29 09:36:00.417: E/AndroidRuntime(30734): FATAL EXCEPTION: main 
> 04-29 09:36:00.417: E/AndroidRuntime(30734): 
> java.lang.RuntimeException: Unable to start activity 
> ComponentInfo{com.vgm_versi2rev/com.vgm_versi2rev.DisplayImage}: 
> java.lang.NullPointerException 04-29 09:36:00.417: 
> E/AndroidRuntime(30734): at 
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295) 
> 04-29 09:36:00.417: E/AndroidRuntime(30734): at 
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349) 
> 04-29 09:36:00.417: E/AndroidRuntime(30734): at 
> android.app.ActivityThread.access$700(ActivityThread.java:159) 04-29 
> 09:36:00.417: E/AndroidRuntime(30734): at 
> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316) 
> 04-29 09:36:00.417: E/AndroidRuntime(30734): at 
> android.os.Handler.dispatchMessage(Handler.java:99) 04-29 
> 09:36:00.417: E/AndroidRuntime(30734): at 
> android.os.Looper.loop(Looper.java:137) 04-29 09:36:00.417: 
> E/AndroidRuntime(30734): at 
> android.app.ActivityThread.main(ActivityThread.java:5419) 04-29 
> 09:36:00.417: E/AndroidRuntime(30734): at 
> java.lang.reflect.Method.invokeNative(Native Method) 04-29 
> 09:36:00.417: E/AndroidRuntime(30734): at 
> java.lang.reflect.Method.invoke(Method.java:525) 04-29 09:36:00.417: 
> E/AndroidRuntime(30734): at 
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209) 
> 04-29 09:36:00.417: E/AndroidRuntime(30734): at 
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025) 04-29 
> 09:36:00.417: E/AndroidRuntime(30734): at 
> dalvik.system.NativeStart.main(Native Method) 04-29 09:36:00.417: 
> E/AndroidRuntime(30734): Caused by: java.lang.NullPointerException 
> 04-29 09:36:00.417: E/AndroidRuntime(30734): at 
> com.vgm_versi2rev.DisplayImage.onCreate(DisplayImage.java:56) 04-29 
> 09:36:00.417: E/AndroidRuntime(30734): at 
> android.app.Activity.performCreate(Activity.java:5372) 04-29 
> 09:36:00.417: E/AndroidRuntime(30734): at 
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104) 
> 04-29 09:36:00.417: E/AndroidRuntime(30734): at 
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257) 
> 04-29 09:36:00.417: E/AndroidRuntime(30734): ... 11 more 

私のAndroidのマニフェストは以下の通りです:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.vgm_versi2rev" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="10" 
     android:targetSdkVersion="14" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-feature 
     android:name="android.hardware.camera" 
     android:required="false"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/vgm" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <activity 
      android:name=".Homepage" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".Lihat_Data" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".DetailActivity"> 

     </activity> 

     <activity 
      android:name=".MainActivityPetiole" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".MainActivityPhoto" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".DisplayImage" 

      android:label="@string/title_activity_display_image" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
     </activity> 


    </application> 

</manifest> 

私は大いに感謝しますか? よろしく

+1

あなたの質問はちょっと混乱しています。 明確にしてください。 –

+0

@OsamaAftab私は私の質問が編集されました –

+0

@Blipは私にそれを手伝ってくれてありますか? im newbie in android programming –

答えて

0

エラー行が56である:description.setText(image.toString());

と私はあなたがあなた は、この機能でループを得たように、それは思えるだgetMyImage(String image)機能チェック、

private MyImage getMyImage(String image) { 
    try { 
     JSONObject job = new JSONObject(image); 
     return (new MyImage(job.getString("path"),job.getString("title"), 
       job.getString("datetime"),job.getString("description"), 
       job.getString("longitude"),job.getString("latitude"))); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

異なるパラメータを持つ関数の戻り値そのもの私はちょっと混乱しましたが、そこに問題があるかもしれません。

関連する問題