2014-05-15 6 views
1

Я создаю приложение, которое будет принимать данные от пользователя и отправлять его на сервер для поиска. Вот мои две проблемыОшибка при получении текста от edittext-Android

  1. Ошибка при получении ошибки от EditText
  2. Toast не работает

здесь мой код

public class QuickSearch extends Activity { 

     Button search; 
     RadioGroup stones; 
     RadioButton single,twin,selected_value; 
     EditText to,from,unique_id; 
     TextView tv; 
     HttpPost httppost; 
     StringBuffer buffer; 
     HttpResponse response; 
     HttpClient httpclient; 
     List<NameValuePair> nameValuePairs; 
     ProgressDialog dialog = null; 
     Intent f1; 
     String radiovalue; 
     String str_color1,str_color2,str_clarity1, str_clarity2, str_shape1,str_shape2, str_cut1,str_cut2,str_carat1,str_carat2; 
     Spinner color1,color2,shape1,shape2,clarity1,clarity2,cut,cut2; 

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

      search=(Button)findViewById(R.id.search); 
      // submit=(Button)findViewById(R.id.submit); 
      to=(EditText)findViewById(R.id.to); 
      from=(EditText)findViewById(R.id.from); 
      // unique_id=(EditText)findViewById(R.id.unique_id); 
      tv = (TextView)findViewById(R.id.tv); 
      stones=(RadioGroup)findViewById(R.id.radioGroup); 
      single=(RadioButton)findViewById(R.id.single); 
      twin=(RadioButton)findViewById(R.id.twin); 


      f1 = new Intent(QuickSearch.this,Search_result.class); 





      color1=(Spinner)findViewById(R.id.color1); 
      ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.color1, android.R.layout.simple_spinner_item); 
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      color1.setAdapter(adapter); 


      color2=(Spinner)findViewById(R.id.color2); 
      ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(this, R.array.color2, android.R.layout.simple_spinner_item); 
      adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      color2.setAdapter(adapter2); 


      shape1=(Spinner)findViewById(R.id.shape); 
      ArrayAdapter<CharSequence> adapter3 = ArrayAdapter.createFromResource(this, R.array.shape, android.R.layout.simple_spinner_item); 
      adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      shape1.setAdapter(adapter3); 


      shape2=(Spinner)findViewById(R.id.shape2); 
      ArrayAdapter<CharSequence> adapter8 = ArrayAdapter.createFromResource(this, R.array.shape2, android.R.layout.simple_spinner_item); 
      adapter8.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      shape2.setAdapter(adapter8); 



      clarity1=(Spinner)findViewById(R.id.clarity1); 
      ArrayAdapter<CharSequence> adapter4 = ArrayAdapter.createFromResource(this, 
        R.array.clarity1, android.R.layout.simple_spinner_item); 
      adapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      clarity1.setAdapter(adapter4); 



      clarity2=(Spinner)findViewById(R.id.clarity2); 
      ArrayAdapter<CharSequence> adapter5 = ArrayAdapter.createFromResource(this,R.array.clarity2, android.R.layout.simple_spinner_item); 
      adapter5.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      clarity2.setAdapter(adapter5); 


      cut=(Spinner)findViewById(R.id.cut); 
      ArrayAdapter<CharSequence> adapter6 = ArrayAdapter.createFromResource(this,R.array.cut, android.R.layout.simple_spinner_item); 
      adapter6.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      cut.setAdapter(adapter6); 

      cut2=(Spinner)findViewById(R.id.cut2); 
      ArrayAdapter<CharSequence> adapter7 = ArrayAdapter.createFromResource(this,R.array.cut2, android.R.layout.simple_spinner_item); 
      adapter7.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      cut2.setAdapter(adapter7); 



    /* 
      if(stones.getCheckedRadioButtonId()!=-1){ 
       int id= stones.getCheckedRadioButtonId(); 
       View radioButton = stones.findViewById(id); 
      // int radioId = radioGroup.indexOfChild(radioButton); 
       RadioButton btn = (RadioButton) stones.getChildAt(radioId); 
       radiovalue = (String) btn.getText(); 
      } 

     */ 
//--------------------------------getting value on button press------------------  

      search.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 


         str_color1= color1.getSelectedItem().toString(); 
         str_color2= color2.getSelectedItem().toString(); 
         str_shape1=shape1.getSelectedItem().toString(); 
         str_shape2=shape2.getSelectedItem().toString(); 
         str_clarity2=clarity2.getSelectedItem().toString(); 

         str_clarity1= clarity1.getSelectedItem().toString(); 
         str_cut1=cut.getSelectedItem().toString(); 
         str_cut2=cut2.getSelectedItem().toString(); 
         str_carat1=to.getText().toString().trim(); 
         str_carat2=from.getText().toString().trim(); 


         dialog = ProgressDialog.show(QuickSearch.this, "","Searching...", true); 

         int selectedId = stones.getCheckedRadioButtonId(); 

         // find the radiobutton by returned id 
         selected_value = (RadioButton) findViewById(selectedId); 
         radiovalue= selected_value.getText().toString(); 
         if(str_color1=="Color To:" || str_color2=="Color From:" || str_clarity1=="Color To:" || str_clarity2 =="Color From:" 
           || str_cut1 == "Cut To:" || str_cut2 == " Cut From:" || str_shape1=="Shape To:" || str_shape2 =="Shape From" 
           || radiovalue=="" || str_carat1==null || str_carat2==null) 
         { 

          Toast.makeText(getApplicationContext(), "Please enter all the field", Toast.LENGTH_SHORT).show(); 

         } 
         else 
         { 


         new Thread(new Runnable() { 
          public void run() { 
           Search(); 
          } 
         }).start(); 
        }} 
       }); 
     } 

     void Search(){ 
      try{ 

       httpclient=new DefaultHttpClient(); 
       httppost= new HttpPost("http://192.168.43.6/test/search.php"); // make sure the url is correct. 
       //add your data 
       nameValuePairs = new ArrayList<NameValuePair>(2); 
       // Always use the same variable name for posting i.e the android side variable name and php side variable name should be similar, 
       nameValuePairs.add(new BasicNameValuePair("carat1",unique_id.getText().toString().trim())); 
       nameValuePairs.add(new BasicNameValuePair("carat2",unique_id.getText().toString().trim())); 
       nameValuePairs.add(new BasicNameValuePair("color1",unique_id.getText().toString().trim())); 
       nameValuePairs.add(new BasicNameValuePair("color2",unique_id.getText().toString().trim())); 
       nameValuePairs.add(new BasicNameValuePair("shape1",unique_id.getText().toString().trim())); 
       nameValuePairs.add(new BasicNameValuePair("shape2",unique_id.getText().toString().trim())); 
       nameValuePairs.add(new BasicNameValuePair("stones",unique_id.getText().toString().trim())); 

       // $Edittext_value = $_POST['Edittext_value']; 

       httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
       //Execute HTTP Post Request 
       response=httpclient.execute(httppost); 

       ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
       final String response = httpclient.execute(httppost, responseHandler); 
       System.out.println("Response : " + response); 
       runOnUiThread(new Runnable() { 
        public void run() { 
         tv.setText("Response from PHP : " + response); 
         dialog.dismiss(); 
        } 
       }); 

       if(response.equalsIgnoreCase("Search")){ 
        runOnUiThread(new Runnable() { 
         public void run() { 
          Toast.makeText(QuickSearch.this, "Searching Successful", Toast.LENGTH_SHORT).show(); 
         } 
        }); 

        // startActivity(new Intent(QuickSearch.this, LoginScreen.class)); 
        //f1.putExtra("unique_id", unique_id.getText()); 
        //st/artActivity(f1); 


       }else{ 
        showAlert(); 
       } 

      }catch(Exception e){ 
       dialog.dismiss(); 
       System.out.println("Exception : " + e.getMessage()); 
      } 
     } 
     public void showAlert(){ 
      QuickSearch.this.runOnUiThread(new Runnable() { 
       public void run() { 
        AlertDialog.Builder builder = new AlertDialog.Builder(QuickSearch.this); 
        builder.setTitle("Searching Error."); 
        builder.setMessage("Problem in Searching. Please try again later") 
          .setCancelable(false) 
          .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 
           } 
          }); 
        AlertDialog alert = builder.create(); 
        alert.show(); 
       } 
      }); 
     } 


    } 

LogCat ошибка

05-15 11:13:22.327 28644-28932/com.diamond.traders I/System.out﹕ Exception : Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference 
+0

отправить полный логарифм или указать код, в котором вы получаете ошибку – SathishKumar

+1

вы закомментировали свой 'unique_id'' Button'' // unique_id = (EditText) findViewById (R.id.unique_id); 'remove' // '. –

+0

На какой строке вы получаете сообщение об ошибке? – Aniruddha

ответ

2

У вас есть закомментирована строку, которая инициализирует ваш unique_id экземпляр EditText:

// unique_id=(EditText)findViewById(R.id.unique_id); 

так при вызове

nameValuePairs.add(new BasicNameValuePair("carat1",unique_id.getText().toString().trim())); 

это вызывает исключение.

Инициализируйте свои элементы gui правильно, чтобы иметь к ним доступ.

+1

спасибо, я нашел свою проблему. –

Смежные вопросы