如何解决尝试在空对象上调用虚拟方法“android.text.Editable android.widget.EditText.getText()” businessactivity.java业务活动.xml我的日志猫
我正在尝试选择一张图片,然后上传它。但是,当我选择一个图像时,它停止工作,这是很长的代码,所以我只是在此处包含了显示错误的代码部分。我试过检查所有的东西,但它不起作用。感谢帮助。
这是我的代码:
businessactivity.java
public byte[] getFileDataFromDrawable(Bitmap bitmap) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG,80,byteArrayOutputStream);
return byteArrayOutputStream.toByteArray();
}
private void uploadBitmap(final Bitmap bitmap) {
//getting the tag from the edittext
final String tags = editTextTags.getText().toString().trim();
//our custom volley request
VolleyMultipartRequest volleyMultipartRequest = new VolleyMultipartRequest(Request.Method.POST,AppConfig.UPLOAD_URL,new Response.Listener<NetworkResponse>() {
@Override
public void onResponse(NetworkResponse response) {
try {
JSONObject obj = new JSONObject(new String(response.data));
Toast.makeText(getApplicationContext(),obj.getString("message"),Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),error.getMessage(),Toast.LENGTH_SHORT).show();
}
}) {
/*
* If you want to add more parameters with the image
* you can do it here
* here we have only one parameter with the image
* which is tags
* */
@Override
protected Map<String,String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("tags",tags);
return params;
}
/*
* Here we are passing image by renaming it with a unique name
* */
@Override
protected Map<String,DataPart> getByteData() {
Map<String,DataPart> params = new HashMap<>();
long imagename = System.currentTimeMillis();
params.put("pic",new DataPart(imagename + ".png",getFileDataFromDrawable(bitmap)));
return params;
}
};
//adding the request to volley
Volley.newRequestQueue(this).add(volleyMultipartRequest);
}
//method to get the file path from uri
public String getPath(Uri uri) {
Cursor cursor = getContentResolver().query(uri,null,null);
cursor.moveToFirst();
String document_id = cursor.getString(0);
document_id = document_id.substring(document_id.lastIndexOf(":") + 1);
cursor.close();
cursor = getContentResolver().query(
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,MediaStore.Images.Media._ID + " = ? ",new String[]{document_id},null);
cursor.moveToFirst();
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
cursor.close();
return path;
}
//Requesting permission
private void requestStoragePermission() {
if (ContextCompat.checkSelfPermission(this,Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)
return;
if (ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.READ_EXTERNAL_STORAGE)) {
//If the user has denied the permission previously your code will come to this block
//Here you can explain why you need this permission
//Explain here why you need this permission
}
//And finally ask for the permission
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},STORAGE_PERMISSION_CODE);
}
业务活动.xml
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:scrollbarSize="10dp"
android:scrollbarStyle="insideOverlay">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:layout_marginTop="20dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
>
<Spinner
android:id="@+id/spinner_Bname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<EditText
android:id="@+id/adress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Flat No / Village/ Street"
android:inputType="textEmailAddress"
android:singleLine="true"
/>
<EditText
android:id="@+id/district"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_district"
android:inputType="text"
android:singleLine="true"
/>
<EditText
android:id="@+id/state"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_state"
/>
<EditText
android:id="@+id/pin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint= "@string/hint_Pin"
android:inputType="number"
/>
<EditText
android:id="@+id/Rate"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Rate in Rupees"
android:inputType="numberDecimal"
android:padding="10dp"
android:singleLine="true" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/editTextName"
android:hint="Press Select Button"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/buttonChoose"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginStart="220dp"
android:layout_marginLeft="220dp"
android:text="Select" />
<Button
android:id="@+id/buttonUpload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/editTextName"
android:layout_marginStart="220dp"
android:layout_marginLeft="220dp"
android:text="Upload" />
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/buttonChoose"
/>
</RelativeLayout>
<Button
android:id="@+id/btnSave"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:text="@string/btn_Save"
android:textAllCaps="false"
android:background="#ea4c88"
android:textColor="@color/white"
android:textSize="15dp" />
我的日志猫
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method
'android.text.Editable android.widget.EditText.getText()' on a null object reference
at com.nidhi.timtom.BussinessActivity.uploadBitmap(BussinessActivity.java:254)
at com.nidhi.timtom.BussinessActivity.onActivityResult(BussinessActivity.java:226)
at android.app.Activity.dispatchActivityResult(Activity.java:6932)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4085)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4132)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1533)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。