异常:java.lang.NullPointerException位于ArrayAdapter<;字符串>;
我有两个按钮执行相同的方法,用Mysql数据库中的数据填充自己的微调器,但问题是只填充了一个微调器,当我单击另一个“Buscar”(来自葡萄牙语:“Search”)按钮时,我得到了“java.lang.NullPointerException”,应用程序中止 我的代码 这是第一个按钮,此代码工作并填充微调器:异常:java.lang.NullPointerException位于ArrayAdapter<;字符串>;,java,android,mysql,spinner,android-arrayadapter,Java,Android,Mysql,Spinner,Android Arrayadapter,我有两个按钮执行相同的方法,用Mysql数据库中的数据填充自己的微调器,但问题是只填充了一个微调器,当我单击另一个“Buscar”(来自葡萄牙语:“Search”)按钮时,我得到了“java.lang.NullPointerException”,应用程序中止 我的代码 这是第一个按钮,此代码工作并填充微调器: btnBuscarProduto.setOnClickListener(new View.OnClickListener() { public void
btnBuscarProduto.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
buscarPor = "produtos";
System.out.println("Buscando por: "+buscarPor);
Looper.prepare();
resultadoBusca = buscar(edtBuscaProduto.getText().toString());
System.out.println("Resultado da busca: "+resultadoBusca);
((Activity)context).runOnUiThread(new Runnable(){
@Override
public void run() {
if(resultadoBusca.equalsIgnoreCase("vazio")){
Toast toast = Toast.makeText(getActivity(), "Nada Encontrado", Toast.LENGTH_SHORT);
toast.show();
}else{
listaBusca = makeList(resultadoBusca);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_dropdown_item, listaBusca);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spnProdutos.setAdapter(spinnerArrayAdapter);
}
}});
}
}).start();
}
});
btnBuscarPizza.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
buscarPor = "pizzas";
System.out.println("Buscando por: "+buscarPor);
Looper.prepare();
resultadoBusca = buscar(edtBuscaPizza.getText().toString());
System.out.println("Resultado da busca: "+resultadoBusca);
((Activity)context).runOnUiThread(new Runnable(){
@Override
public void run() {
if(resultadoBusca.equalsIgnoreCase("vazio")){
Toast toast = Toast.makeText(getActivity(), "Nada Encontrado", Toast.LENGTH_SHORT);
toast.show();
}else{
listaBusca = makeList(resultadoBusca);
System.out.println("Lista da busca: "+listaBusca);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_dropdown_item, listaBusca);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spnPizzas.setAdapter(spinnerArrayAdapter);
}
}});
}
}).start();
}
});
btnBuscarProduto.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
新线程(newrunnable()){
公开募捐{
buscarPor=“produtos”;
System.out.println(“Buscando por:+buscarPor”);
Looper.prepare();
resultadoBusca=buscar(edtBuscaProduto.getText().toString());
系统输出打印项次(“Resultado da busca:+resultadoBusca”);
((活动)上下文).runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
如果(结果为Obuca.equalsIgnoreCase(“vazio”)){
Toast Toast=Toast.makeText(getActivity(),“Nada Encontrado”,Toast.LENGTH\u SHORT);
toast.show();
}否则{
listaBusca=制作列表(resultadoBusca);
ArrayAdapter SpinnerayAdapter=新的ArrayAdapter(上下文,android.R.layout.simple\u微调器\u下拉菜单\u项,listaBusca);
spinnerrayadapter.setDropDownViewResource(android.R.layout.simple\u微调器\u项);
spnProdutos.setAdapter(SpinNerrayAdapter);
}
}});
}
}).start();
}
});
这是第二个按钮,此代码起作用,但不填充微调器:
btnBuscarProduto.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
buscarPor = "produtos";
System.out.println("Buscando por: "+buscarPor);
Looper.prepare();
resultadoBusca = buscar(edtBuscaProduto.getText().toString());
System.out.println("Resultado da busca: "+resultadoBusca);
((Activity)context).runOnUiThread(new Runnable(){
@Override
public void run() {
if(resultadoBusca.equalsIgnoreCase("vazio")){
Toast toast = Toast.makeText(getActivity(), "Nada Encontrado", Toast.LENGTH_SHORT);
toast.show();
}else{
listaBusca = makeList(resultadoBusca);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_dropdown_item, listaBusca);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spnProdutos.setAdapter(spinnerArrayAdapter);
}
}});
}
}).start();
}
});
btnBuscarPizza.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
buscarPor = "pizzas";
System.out.println("Buscando por: "+buscarPor);
Looper.prepare();
resultadoBusca = buscar(edtBuscaPizza.getText().toString());
System.out.println("Resultado da busca: "+resultadoBusca);
((Activity)context).runOnUiThread(new Runnable(){
@Override
public void run() {
if(resultadoBusca.equalsIgnoreCase("vazio")){
Toast toast = Toast.makeText(getActivity(), "Nada Encontrado", Toast.LENGTH_SHORT);
toast.show();
}else{
listaBusca = makeList(resultadoBusca);
System.out.println("Lista da busca: "+listaBusca);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_dropdown_item, listaBusca);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spnPizzas.setAdapter(spinnerArrayAdapter);
}
}});
}
}).start();
}
});
btnBuscarPizza.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
新线程(newrunnable()){
公开募捐{
buscarPor=“比萨饼”;
System.out.println(“Buscando por:+buscarPor”);
Looper.prepare();
resultadoBusca=buscar(edtBuscaPizza.getText().toString());
系统输出打印项次(“Resultado da busca:+resultadoBusca”);
((活动)上下文).runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
如果(结果为Obuca.equalsIgnoreCase(“vazio”)){
Toast Toast=Toast.makeText(getActivity(),“Nada Encontrado”,Toast.LENGTH\u SHORT);
toast.show();
}否则{
listaBusca=制作列表(resultadoBusca);
System.out.println(“Lista da busca:+listaBusca”);
ArrayAdapter SpinnerayAdapter=新的ArrayAdapter(上下文,android.R.layout.simple\u微调器\u下拉菜单\u项,listaBusca);
spinnerrayadapter.setDropDownViewResource(android.R.layout.simple\u微调器\u项);
spnPizzas.setAdapter(spinnerrayadapter);
}
}});
}
}).start();
}
});
在上述方法中,错误出现在以下几行:
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_dropdown_item, listaBusca);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spnPizzas.setAdapter(spinnerArrayAdapter);
ArrayAdapter spinnerrayadapter=新的ArrayAdapter(上下文,android.R.layout.simple\u spinner\u下拉菜单项,listaBusca);
spinnerrayadapter.setDropDownViewResource(android.R.layout.simple\u微调器\u项);
spnPizzas.setAdapter(SPINNERRAYADAPTER);
其他方法:
public String buscar(String termo){
String resp = null;
try{
httpclient = new DefaultHttpClient();
httppost = new HttpPost("http://192.168.1.101/android/busca.php");
nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("buscarPor", buscarPor));
nameValuePairs.add(new BasicNameValuePair("busca", termo));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response=httpclient.execute(httppost);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
resp = httpclient.execute(httppost, responseHandler);
}catch(Exception e){
Toast toast = Toast.makeText(getActivity(), "Erro: "+e.getMessage(), Toast.LENGTH_SHORT);
toast.show();
}
return resp;
}
public List<String> makeList(String input){
List<String> list = new ArrayList<String>();
String[] newArray = input.split("\\|");
for (int i =0; i<newArray.length; i++){
list.add(newArray[i].toString());
}
return list;
}
public String总线车(String termo){
字符串resp=null;
试一试{
httpclient=新的DefaultHttpClient();
httppost=新的httppost(“http://192.168.1.101/android/busca.php");
nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“buscarPor”,buscarPor));
添加(新的BasicNameValuePair(“busca”,termo));
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
response=httpclient.execute(httppost);
ResponseHandler ResponseHandler=新BasicResponseHandler();
resp=httpclient.execute(httppost,responseHandler);
}捕获(例外e){
Toast Toast=Toast.makeText(getActivity(),“Erro:+e.getMessage(),Toast.LENGTH\u SHORT);
toast.show();
}
返回响应;
}
公共列表生成列表(字符串输入){
列表=新的ArrayList();
字符串[]newArray=input.split(“\\\\”);
对于(int i=0;i打开您的日志。它告诉您NPE在哪里。context
在哪里初始化?微调器在哪里初始化?11-09 13:53:51.676:i/System.out(1331):Resultado da busca:Calabresa | 11-09 13:53:51.676:i/System.out(1331):Lista da busca:[Calabresa]11-09 13:53:51.676:i/System.out(1331):异常:java.lang.NullPointerException 11-09 14:06:18.410:I/dalvikvm(1331):Jit:将JitTable从512调整为1024@RenanOliveira您无法从线程更新ui。您正在buscar
中显示toast。这与异常无关。尽管我设法解决了问题,但问题是我的声明带有na