我创建了一个应用程序,在你将一些单词插入编辑文本后,它会发送到服务器并转到其他活动。但我不能让它转到其他活动,因为它强行关闭。请帮助我
这是我的代码
公共类MainActivity扩展AppCompatActivity实现了View.OnClickListener {
private static final String SERVER_ADDRESS = "http://www.bruhnancel.xyz/testing.php";
EditText picname, link;
Button submit, submitpic;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
picname = (EditText)findViewById(R.id.picname);
link = (EditText)findViewById(R.id.link);
submit =(Button)findViewById(R.id.submit);
submitpic = (Button)findViewById(R.id.submitpic);
submit.setOnClickListener(this);
submitpic.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.submit:
new sendData(picname.getText().toString(), link.getText().toString()).execute();
break;
case R.id.submitpic:
}
}
private HttpParams getHttpRequestParams(){
HttpParams httpRequestParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpRequestParams, 1000 * 30);
HttpConnectionParams.setSoTimeout(httpRequestParams, 1000 * 30);
return httpRequestParams;
}
public class sendData extends AsyncTask<Void, Void, Void>{
Context c;
String picname;
String link;
/*public sendData(Context context) {
this.context = context.getApplicationContext();
}*/
public sendData(Context context) {
c = context;
}
public sendData(String picname, String link){
this.picname = picname;
this.link = link;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Toast.makeText(getApplicationContext(), " Uploaded", Toast.LENGTH_SHORT).show();
startActivity(new Intent(c, UploadImage.class));
}
@Override
protected Void doInBackground(Void... params) {
ArrayList<NameValuePair> dataToSend = new ArrayList<>();
dataToSend.add(new BasicNameValuePair("picname", picname));
dataToSend.add(new BasicNameValuePair("link", "www.bruhnancel.xyz/" + link));
try{
HttpParams httpRequestParams = getHttpRequestParams();
HttpClient client = new DefaultHttpClient(httpRequestParams);
HttpPost post = new HttpPost(SERVER_ADDRESS);
post.setEntity(new UrlEncodedFormEntity(dataToSend));
client.execute(post);
}catch(Exception e){
Toast.makeText(getApplicationContext(), " Failed", Toast.LENGTH_SHORT).show();
}
return null;
}
}
}
这是我的UploadImageClass
package com.example.user.testinguploaddata;
import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.util.Base64;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
@SuppressWarnings("ALL")
public class UploadImage extends AppCompatActivity implements View.OnClickListener {
private ProgressDialog progressDialog;
private static final int RESULT_LOAD_IMAGE = 1;
private static final String SERVER_ADDRESS = "http://www.bruhnancel.xyz/" ;
ImageView imageToUpload, downloadedImage;
Button bUploadImage, bDownloadImage;
EditText uploadImageName, downloadImageName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageToUpload = (ImageView)findViewById(R.id.imageToUpload);
downloadedImage = (ImageView)findViewById(R.id.downloadedImage);
bUploadImage = (Button)findViewById(R.id.bUploadImage);
bDownloadImage = (Button)findViewById(R.id.bDownloadImage);
uploadImageName = (EditText)findViewById(R.id.etUploadName);
downloadImageName = (EditText)findViewById(R.id.etDownloadName);
imageToUpload.setOnClickListener(this);
bUploadImage.setOnClickListener(this);
bDownloadImage.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.imageToUpload:
Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent, RESULT_LOAD_IMAGE); // Bring the image together after the intent
break;
case R.id.bUploadImage:
Bitmap image = ((BitmapDrawable)imageToUpload.getDrawable()).getBitmap();
new UploadImageToServer(image, uploadImageName.getText().toString()).execute();
break;
case R.id.bDownloadImage:
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && data !=null){
Uri selectedImage = data.getData();
imageToUpload.setImageURI(selectedImage);
}
}
private class UploadImageToServer extends AsyncTask<Void, Void, Void>{
Bitmap image;
String name;
public UploadImageToServer(Bitmap image, String name){
this.image = image;
this.name = name;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
showProgressDialog("Please wait...", "Your message");
}
@Override
protected Void doInBackground(Void... params) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 50, byteArrayOutputStream);
String encodedImage = Base64.encodeToString(byteArrayOutputStream.toByteArray(), Base64.DEFAULT);
ArrayList<NameValuePair> dataToSend = new ArrayList<>();
dataToSend.add(new BasicNameValuePair("image", encodedImage));
dataToSend.add(new BasicNameValuePair("name", name));
//ContentValues values = new ContentValues();
//values.put("image", encodedImage);
//values.put("name", name);
try{
HttpParams httpRequestParams = getHttpRequestParams();
HttpClient client = new DefaultHttpClient(httpRequestParams);
HttpPost post = new HttpPost(SERVER_ADDRESS + "SavePicture.php");
post.setEntity(new UrlEncodedFormEntity(dataToSend));
client.execute(post);
}catch(Exception e){
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
if(progressDialog != null && progressDialog.isShowing())
{
progressDialog.dismiss();
Toast.makeText(getApplicationContext(), "Image Uploaded", Toast.LENGTH_SHORT).show();
}
}
}
private HttpParams getHttpRequestParams(){
HttpParams httpRequestParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpRequestParams, 1000 * 30);
HttpConnectionParams.setSoTimeout(httpRequestParams, 1000*30);
return httpRequestParams;
}
private void showProgressDialog(String title, String message)
{
progressDialog = new ProgressDialog(this);
progressDialog.setTitle("Please wait"); //title
progressDialog.setMessage("Uploading"); // message
progressDialog.setCancelable(false);
progressDialog.show();
}
}