2015-01-21 2 views
-2

Во-первых, я хочу подключиться к WebServis с параметрами (идентификационный номер, имя, фамилия, дата рождения). Но я не могу разрешить эту ошибку.java.lang.numberformatexception: invalid long: ""

EditText txtTC; 
EditText txtAd; 
EditText txtSoyad; 
EditText txtDogumYili; 
Button btnDogrula; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    txtTC=(EditText)findViewById(R.id.txtTC); 
    txtAd=(EditText)findViewById(R.id.txtAd); 
    txtSoyad=(EditText)findViewById(R.id.txtSoyad); 
    txtDogumYili=(EditText)findViewById(R.id.txtDogum); 
    btnDogrula=(Button)findViewById(R.id.btnDogrula); 



    btnDogrula.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

входы, которые taked от пользователя в этом классе встраивать в tcKnoInput

  final TCKimlikNoInput tcKnoInput=new TCKimlikNoInput(); 
      tcKnoInput.setTcKimlikNo(Long.parseLong(txtTC.getText().toString())); 
      tcKnoInput.setAd(txtAd.getText().toString()); 
      tcKnoInput.setSoyad(txtSoyad.getText().toString()); 
      tcKnoInput.setDogumYili(Integer.parseInt(txtDogumYili.getText().toString())); 

      TCKimlikAsyncTask lt=new TCKimlikAsyncTask(); 

      try{ 

       lt.input=tcKnoInput; 
       lt.execute("");} 
      catch(NumberFormatException ex){ // handle your exception 
       ex.printStackTrace(); 

     } 
    }}); 

    TCKimlikNoInput tcKnoInput=new TCKimlikNoInput(); 
    tcKnoInput.setTcKimlikNo(Long.parseLong(txtTC.getText().toString())); 
    tcKnoInput.setAd(txtAd.getText().toString()); 
    tcKnoInput.setSoyad(txtSoyad.getText().toString()); 
    tcKnoInput.setDogumYili(Integer.parseInt(txtDogumYili.getText().toString())); 

} 

спасибо за answer.But у меня есть новая ошибка в другой class.Class' код ниже

public class TCKimlikAsyncTask extends AsyncTask<String,Void,String>{ 

public TCKimlikNoInput input; 
public boolean sonuc=false; 

@Override 
protected String doInBackground(String... params) { 
    // TODO Auto-generated method stub 

    WebServiceCaller i=new WebServiceCallerImpl(); 
    sonuc=i.TcKimlikNoDogrula(input); 

    return ""; 
} 

@Override 
protected void onPostExecute(String result) { 

Toast.makeText (getApplicationContext(), "Dogrulama Sonucu:" + sonuc, Toast.LENGTH_LONG) .show();

} 

private Context getApplicationContext() { 
    // TODO Auto-generated method stub 
    return null; 
}} 

то ошибка;

java.lang.NullPointerException в onPostExecute в этом классе

для последней ошибки, Infact я не должен был создать getApplicationContext(), но он не видел определен в парсер

+1

Вы должны опубликовать трассировку стека. –

+1

Итак, некоторые из ваших 'длинных' парсинга берут пустой ввод. Найдите его и исправьте. – Eypros

+1

** Пустая строка не является номером **. Он не будет интерпретироваться как 0. –

ответ

6

Поскольку некоторые из входных данных могут быть пустыми, и вы пытаетесь проанализировать его в Long. Поэтому, прежде чем разобрать это просто проверить значение строки

String kimlikNo = txtTC.getText().toString().trim(); 
if(!kimlikNo.equals("")) 
{ 
tcKnoInput.setTcKimlikNo(Long.parseLong(kimlikNo)); 
} 
2

попробовать, как это,

String kimlikNo = txtTC.getText().trim(); 
if(!kimlikNo.isEmpty()) 
{ 
    tcKnoInput.setTcKimlikNo(Long.parseLong(kimlikNo.toString())); 
0

EditText txtTC добавить в XML inputType = "номер"

<EditText 
     android:id="@+id/edittext_tc" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="number" /> 
0

Вместо непосредственного разбора «txtTC.getText(). ToString()» в «длинный тип, попробуйте сначала проверить, если EditText не пусто, то разобрать это долго. , потому что вы не можете разобрать пустую строку для длинного типа.

заменить

tcKnoInput.setTcKimlikNo(Long.parseLong(txtTC.getText().toString())); 

с

String kimlikNo = txtTC.getText().toString().trim(); 
if(!kimlikNo.isEmpty()) 
{ 
    tcKnoInput.setTcKimlikNo(Long.parseLong(kimlikNo)); 
} 
Смежные вопросы