首先,我想连接WebServis有参数(标识号,姓名,姓氏,出生日期)。但我无法解决此错误。
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) {
此类中用户的输入嵌入在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()));
}
感谢您的回答。但我在其他课程中遇到了新的错误.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(),&#34; Dogrulama Sonucu:&#34; + sonuc,Toast.LENGTH_LONG).show();
}
private Context getApplicationContext() {
// TODO Auto-generated method stub
return null;
}}
然后错误;
onPostExecute中的java.lang.NullPointerException在此类
中对于最后一个错误,实际上我不应该创建getApplicationContext(),但是在解析器中看不到它
答案 0 :(得分:6)
因为某些输入可能是空的,并且您试图在Long中解析它。所以在解析之前只需检查你的字符串值
String kimlikNo = txtTC.getText().toString().trim();
if(!kimlikNo.equals(""))
{
tcKnoInput.setTcKimlikNo(Long.parseLong(kimlikNo));
}
答案 1 :(得分:2)
尝试这样,
String kimlikNo = txtTC.getText().trim();
if(!kimlikNo.isEmpty())
{
tcKnoInput.setTcKimlikNo(Long.parseLong(kimlikNo.toString()));
答案 2 :(得分:0)
EditText txtTC add in xml inputType =“number”
<EditText
android:id="@+id/edittext_tc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number" />
答案 3 :(得分:0)
不是直接将“txtTC.getText()。toString()”解析为“long类型”,而是首先尝试检查EditText是否为空,然后将其解析为long。 因为你无法将空字符串解析成长类型。
替换
tcKnoInput.setTcKimlikNo(Long.parseLong(txtTC.getText().toString()));
与
String kimlikNo = txtTC.getText().toString().trim();
if(!kimlikNo.isEmpty())
{
tcKnoInput.setTcKimlikNo(Long.parseLong(kimlikNo));
}