代码之家  ›  专栏  ›  技术社区  ›  Tonye Boro

链接到其他页面时,我的应用程序崩溃

  •  1
  • Tonye Boro  · 技术社区  · 6 年前

    当链接到另一个页面时,Android应用程序崩溃

    每次我单击创建的按钮以转到下一个活动时,应用程序都会崩溃。

    这是我使用的代码:

     public void openPictureCaptures(View view) {
                Intent intent = new Intent(this, EventActivity.class);
                this.startActivity ( intent );
            }
    

    我链接到的活动( ):

    public class EventActivity extends Activity {
        //public static final String KEY_MENU_TYPE = "menutype";
        Button CaptureImageFromCamera,UploadImageToServer;
    
    
        ImageView ImageViewHolder;
    
        EditText imageName;
        EditText detailText;
    
        ProgressDialog progressDialog ;
    
        Intent intent ;
    
        public  static final int RequestPermissionCode  = 1 ;
    
        Bitmap bitmap;
    
        boolean check = true;
    
        String GetImageNameFromEditText;
        String GetImageDescFromEditText;
    
        String ImageNameFieldOnServer = "event" ;
        String ImageDescOnServer = "description";
        String ImagePathFieldOnServer = "image" ;
        //String menutype = "";
        String ImageUploadPathOnSever ="http://getme.com/osunelection/capture_img_upload_to_server.php" ;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_event);
    
    
            CaptureImageFromCamera = (Button)findViewById(R.id.button);
            ImageViewHolder = (ImageView)findViewById(R.id.imageView);
            UploadImageToServer = (Button) findViewById(R.id.button2);
            imageName = (EditText)findViewById(R.id.editText);
            detailText = (EditText) findViewById(R.id.detailText);
    
            EnableRuntimePermissionToAccessCamera();
    
            CaptureImageFromCamera.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(intent, 7);
                }
            });
    
            UploadImageToServer.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    GetImageNameFromEditText = imageName.getText().toString();
                    GetImageDescFromEditText = detailText.getText().toString();
                    ImageUploadToServerFunction();
    
                }
            });
    
           /* this.menutype = intent.getStringExtra(KEY_MENU_TYPE);
            if (this.menutype == null) {
                this.menutype = "";
            }*/
        }
    
        // Star activity for result method to Set captured image on image view after click.
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    
            super.onActivityResult(requestCode, resultCode, data);
    
            if (requestCode == 7 && resultCode == RESULT_OK && data != null && data.getData() != null) {
    
                Uri uri = data.getData();
    
                try {
    
                    // Adding captured image in bitmap.
                    bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
    
                    // adding captured image in imageview.
                    ImageViewHolder.setImageBitmap(bitmap);
    
                } catch (IOException e) {
    
                    e.printStackTrace();
                }
            }
    
        }
    
        // Requesting runtime permission to access camera.
        public void EnableRuntimePermissionToAccessCamera(){
    
            if (ActivityCompat.shouldShowRequestPermissionRationale(EventActivity.this,
                    Manifest.permission.CAMERA))
            {
    
                // Printing toast message after enabling runtime permission.
                Toast.makeText(EventActivity.this,"CAMERA permission allows us to Access CAMERA app", Toast.LENGTH_LONG).show();
    
            } else {
    
                ActivityCompat.requestPermissions(EventActivity.this,new String[]{Manifest.permission.CAMERA}, RequestPermissionCode);
    
            }
        }
    
        // Upload captured image online on server function.
        public void ImageUploadToServerFunction(){
    
            ByteArrayOutputStream byteArrayOutputStreamObject ;
    
            byteArrayOutputStreamObject = new ByteArrayOutputStream();
    
            // Converting bitmap image to jpeg format, so by default image will upload in jpeg format.
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStreamObject);
    
            byte[] byteArrayVar = byteArrayOutputStreamObject.toByteArray();
    
            final String ConvertImage = Base64.encodeToString(byteArrayVar, Base64.DEFAULT);
    
            class AsyncTaskUploadClass extends AsyncTask<Void,Void,String> {
    
                @Override
                protected void onPreExecute() {
    
                    super.onPreExecute();
    
                    // Showing progress dialog at image upload time.
                    progressDialog = ProgressDialog.show(EventActivity.this,"Image is Uploading","Please Wait",
                            false,false);
                }
    
                @Override
                protected void onPostExecute(String string1) {
    
                    super.onPostExecute(string1);
    
                    // Dismiss the progress dialog after done uploading.
                    progressDialog.dismiss();
    
                    // Printing uploading success message coming from server on android app.
                    Toast.makeText(EventActivity.this,string1,Toast.LENGTH_LONG).show();
    
                    // Setting image as transparent after done uploading.
                    ImageViewHolder.setImageResource(android.R.color.transparent);
    
    
                }
    
                @Override
                protected String doInBackground(Void... params) {
    
                    ImageProcessClass imageProcessClass = new ImageProcessClass();
    
                    HashMap<String,String> HashMapParams = new HashMap<String,String>();
    
                    HashMapParams.put(ImageNameFieldOnServer, GetImageNameFromEditText);
    
                    HashMapParams.put(ImageDescOnServer, GetImageDescFromEditText);
    
                    HashMapParams.put(ImagePathFieldOnServer, ConvertImage);
    
                    String FinalData = imageProcessClass.ImageHttpRequest(ImageUploadPathOnSever, HashMapParams);
    
                    return FinalData;
                }
            }
            AsyncTaskUploadClass AsyncTaskUploadClassOBJ = new AsyncTaskUploadClass();
    
            AsyncTaskUploadClassOBJ.execute();
        }
    
        public void goBack(View view) {
            Intent  intent = new Intent(this, IncidentMenuActivity.class);
             startActivity(intent);
        }
    
        public class ImageProcessClass{
    
            public String ImageHttpRequest(String requestURL,HashMap<String, String> PData) {
    
                StringBuilder stringBuilder = new StringBuilder();
    
                try {
    
                    URL url;
                    HttpURLConnection httpURLConnectionObject ;
                    OutputStream OutPutStream;
                    BufferedWriter bufferedWriterObject ;
                    BufferedReader bufferedReaderObject ;
                    int RC ;
    
                    url = new URL(requestURL);
    
                    httpURLConnectionObject = (HttpURLConnection) url.openConnection();
    
                    httpURLConnectionObject.setReadTimeout(19000);
    
                    httpURLConnectionObject.setConnectTimeout(19000);
    
                    httpURLConnectionObject.setRequestMethod("POST");
    
                    httpURLConnectionObject.setDoInput(true);
    
                    httpURLConnectionObject.setDoOutput(true);
    
                    OutPutStream = httpURLConnectionObject.getOutputStream();
    
                    bufferedWriterObject = new BufferedWriter(
    
                            new OutputStreamWriter(OutPutStream, "UTF-8"));
    
                    bufferedWriterObject.write(bufferedWriterDataFN(PData));
    
                    bufferedWriterObject.flush();
    
                    bufferedWriterObject.close();
    
                    OutPutStream.close();
    
                    RC = httpURLConnectionObject.getResponseCode();
    
                    if (RC == HttpsURLConnection.HTTP_OK) {
    
                        bufferedReaderObject = new BufferedReader(new InputStreamReader(httpURLConnectionObject.getInputStream()));
    
                        stringBuilder = new StringBuilder();
    
                        String RC2;
    
                        while ((RC2 = bufferedReaderObject.readLine()) != null){
    
                            stringBuilder.append(RC2);
                        }
                    }
    
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return stringBuilder.toString();
            }
    
            private String bufferedWriterDataFN(HashMap<String, String> HashMapParams) throws UnsupportedEncodingException {
    
                StringBuilder stringBuilderObject;
    
                stringBuilderObject = new StringBuilder();
    
                for (Map.Entry<String, String> KEY : HashMapParams.entrySet()) {
    
                    if (check)
    
                        check = false;
                    else
                        stringBuilderObject.append("&");
    
                    stringBuilderObject.append(URLEncoder.encode(KEY.getKey(), "UTF-8"));
    
                    stringBuilderObject.append("=");
    
                    stringBuilderObject.append(URLEncoder.encode(KEY.getValue(), "UTF-8"));
                }
    
                return stringBuilderObject.toString();
            }
    
        }
    
        @Override
        public void onRequestPermissionsResult(int RC, String per[], int[] PResult) {
    
            switch (RC) {
    
                case RequestPermissionCode:
    
                    if (PResult.length > 0 && PResult[0] == PackageManager.PERMISSION_GRANTED) {
    
                        Toast.makeText(EventActivity.this,"Permission Granted, Now your application can access CAMERA.", Toast.LENGTH_LONG).show();
    
                    } else {
    
                        Toast.makeText(EventActivity.this,"Permission Canceled, Now your application cannot access CAMERA.", Toast.LENGTH_LONG).show();
    
                    }
                    break;
            }
        }
    
    }
    

    是不是我做错了什么可能导致的?我在网上做了一些调查,这和他们大多数人使用的方法是一样的。

    0 回复  |  直到 6 年前