2016-11-29 69 views
-1

大家好我基本上在將2個按鈕轉換爲1時遇到問題。 我有一個用於將圖像上載到數據庫的按鈕,另一個用於將數據也上傳到數據庫。 這裏是我的代碼:Android Studio上傳按鈕和提交按鈕1

public static final String UPLOAD_URL = "http://animotradings.000webhostapp.com/upload.php"; 
public static final String UPLOAD_KEY = "image"; 

//Categories Spinner 
Spinner spinner; 
ArrayAdapter<CharSequence> adapter; 

//Meet-up Spinner 
Spinner spinner2; 
ArrayAdapter<CharSequence> adapter2; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sell_activityy); 

    //PhotoUpload 
    buttonChoose = (Button) findViewById(R.id.buttonChoose); 
    buttonUpload = (Button) findViewById(R.id.buttonUpload); 

    imageView = (ImageView) findViewById(R.id.imageView); 

    buttonChoose.setOnClickListener(this); 
    buttonUpload.setOnClickListener(this); 

    // Categories Spinner 
    spinner = (Spinner)findViewById(sCategories); 
    adapter = ArrayAdapter.createFromResource(this, R.array.category_types, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      Toast.makeText(getBaseContext(), parent.getItemAtPosition(position)+" selected", Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 

    // Meet-up Spinner 
    spinner2 = (Spinner)findViewById(smeetup); 
    adapter2 = ArrayAdapter.createFromResource(this, R.array.meetup_location, android.R.layout.simple_spinner_item); 
    adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner2.setAdapter(adapter2); 
    spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      Toast.makeText(getBaseContext(), parent.getItemAtPosition(position)+" selected", Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
     } 
    }); 

    final EditText etItemName = (EditText) findViewById(R.id.etItemName); 
    final EditText etCondition = (EditText) findViewById(R.id.etCondition); 
    final EditText etDescription = (EditText) findViewById(R.id.etDescription); 
    final EditText etPrice = (EditText) findViewById(R.id.etPrice); 
    final EditText etContact = (EditText) findViewById(R.id.etContact); 
    final Spinner sCategories = (Spinner) findViewById (R.id.sCategories); 
    final Spinner smeetup = (Spinner) findViewById (R.id.smeetup); 
    final Button bSubmit = (Button) findViewById(R.id.bSubmit); 

    bSubmit.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      final String item_name = etItemName.getText().toString(); 
      final String conditionn = etCondition.getText().toString(); 
      final String description = etDescription.getText().toString(); 
      final int price = Integer.parseInt(etPrice.getText().toString()); 
      final double contact = Double.parseDouble(etContact.getText().toString()); 
      final String categories = sCategories.getSelectedItem().toString(); 
      final String meetup = smeetup.getSelectedItem().toString(); 


      // Data Upload... 
      Response.Listener<String> responseListener= new Response.Listener<String>(){ 

       @Override 
       public void onResponse(String response) { 
        try { 
         JSONObject jsonResponse = new JSONObject(response); 
         boolean success = jsonResponse.getBoolean("success"); 

         if (success){ 
          Intent intent = new Intent(SellActivityy.this, NavigationDrawer.class); 
          SellActivityy.this.startActivity(intent); 
         } else{ 
          AlertDialog.Builder builder = new AlertDialog.Builder(SellActivityy.this); 
          builder.setMessage("Ad posting failed!") 
            .setNegativeButton("Retry", null) 
            .create() 
            .show(); 
         } 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }; 

      SellRequest sellRequest = new SellRequest(item_name, conditionn, description, price, contact, categories, meetup, responseListener); 
      RequestQueue queue = Volley.newRequestQueue(SellActivityy.this); 
      queue.add(sellRequest); 
     } 
    }); 
} 

//PhotoUpload 

private void showFileChooser() { 
    Intent intent = new Intent(); 
    intent.setType("image/*"); 
    intent.setAction(Intent.ACTION_GET_CONTENT); 
    startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST); 
} 

private int PICK_IMAGE_REQUEST = 1; 

private Button buttonChoose; 
private Button buttonUpload; 
private Button buttonView; 

private ImageView imageView; 

private Bitmap bitmap; 

private Uri filePath; 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) { 

     filePath = data.getData(); 
     try { 
      bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath); 
      imageView.setImageBitmap(bitmap); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

public String getStringImage(Bitmap bmp){ 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
    byte[] imageBytes = baos.toByteArray(); 
    String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); 
    return encodedImage; 
} 
private void uploadImage(){ 
    // Picture Upload... 
    class UploadImage extends AsyncTask<Bitmap,Void,String> { 

     ProgressDialog loading; 
     RequestHandler rh = new RequestHandler(); 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      loading = ProgressDialog.show(SellActivityy.this, "Uploading...", null,true,true); 
     } 

     @Override 
     protected void onPostExecute(String s) { 
      super.onPostExecute(s); 
      loading.dismiss(); 
      Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     protected String doInBackground(Bitmap... params) { 
      Bitmap bitmap = params[0]; 
      String uploadImage = getStringImage(bitmap); 

      HashMap<String,String> data = new HashMap<>(); 

      data.put(UPLOAD_KEY, uploadImage); 
      String result = rh.sendPostRequest(UPLOAD_URL,data); 

      return result; 
     } 
    } 

    UploadImage ui = new UploadImage(); 
    ui.execute(bitmap); 

} 

@Override 
public void onClick(View v) { 
    if (v == buttonChoose) { 
     showFileChooser(); 
    } 

    if(v == buttonUpload){ 
     uploadImage(); 
    } 



private void viewImage() { 
    startActivity(new Intent(this, ImageListView.class)); }} 

我試圖轉移內部bsubmit.onclicklistener代碼,還試圖改變的提交和上傳按鈕的代碼,但至今沒有成功。 對不起noob問題的傢伙,我實際上是Android Studio的新手,並且無法適應。 我會繼續嘗試不同的代碼,也許從頭開始,但如果你們能幫助我,那會很棒。謝謝:d

+0

您面臨的問題是什麼? –

+0

無法找出您的問題或您的要求 –

+0

基本上,我有2個按鈕,一個用於上傳圖片,另一個用於數據上傳到數據庫。 我試圖將2個按鈕轉換爲1,這樣當我點擊按鈕時,我將能夠同時上傳圖片和數據在數據庫中。 –

回答

0

裏面你bSubmit.onClickListener(),只需添加

buttonUpload.performClick(); 

這將模仿上傳按鈕按下按鈕,將執行它的任務。

+0

我試過這個,但它只上傳圖片,而不是數據。 –