Dans mon application, il existe deux AutoCompleteTextView
et un Button
pour calculer une certaine opération. Je règle le Button
en réponse aux deux AutoCompleteTextView
dans le sens où, si les deux AutoCompleteTextView
sont remplis, alors seulement le Button
apparaîtra.Exception de pointeur nul: addTextChangedListener
En procédant ainsi, j'obtiens une exception Null Pointer. Le programme est comme suit:
boolean isLocation=false;
boolean isDestination=false;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
location=(AutoCompleteTextView)findViewById(R.id.locale);
location.setAdapter(new PlacesAutoCompleteAdapter(this, R.layout.list_item));
location.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
// TODO Auto-generated method stub
place1 = (Places) adapterView.getItemAtPosition(position);
location.setText(place1.description);
location.clearFocus();
destination.requestFocus();
Log.d("AutoCompleteTask", location.getText().toString());
}
});
location.addTextChangedListener(new TextWatcher()
{
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
fillLocation=true;
}
});
destination = (AutoCompleteTextView)findViewById(R.id.destination);
destination.setAdapter(new PlacesAutoCompleteAdapter(this, R.layout.list_item));
destination.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
// TODO Auto-generated method stub
place2 = (Places) adapterView.getItemAtPosition(position);
destination.setText(place2.description);
destination.clearFocus();
calculate.requestFocus();
Log.d("AutoCompleteTask2", destination.getText().toString());
}
});
destination.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
fillDestination=true;
}
});
if(fillLocation==true || fillDestination==true)
{
calculate.setVisibility(View.VISIBLE);
}
else
{
calculate.setVisibility(View.INVISIBLE);
}
calculate = (Button)findViewById(R.id.calculate);
calculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(location.getText().toString().length()<1 || destination.getText().toString().length()<1)
{
Toast.makeText(getApplicationContext(), "Give values before placing a query", Toast.LENGTH_LONG).show();
}
else{
@SuppressWarnings("deprecation")
String url = "http://maps.googleapis.com/maps/api/distancematrix/json?origins="+URLEncoder.encode(location.getText().toString())+"&destinations="+URLEncoder.encode(destination.getText().toString())+"&unit=metric&mode=driving&sensor=false";
new ReadDistanceJSONFeedTask().execute(url);
}
}
});
Être nouveau pour le développement d'applications, ce qui est ce exception de pointeur nul? Puis-je avoir une aide s'il vous plait ?
peut-être mettre calculate = (Bouton) findViewById (R.id.calculate); après setContentView(); vous devriez mettre logCat dans – JRowan
s'il vous plaît mettre chat chat – edwin