关于list产生的问题 安卓 求大神帮助啊 已经摆弄了一天了 我已经确定问题在哪 却不知道为什么

问题描述

关于list产生的问题 安卓 求大神帮助啊 已经摆弄了一天了 我已经确定问题在哪 却不知道为什么
package com.wang.text;

import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import cn.bmob.v3.Bmob;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.datatype.BmobFile;
import cn.bmob.v3.listener.FindListener;

public class MainActivity extends Activity {
String IMAGE_URL = null;
private static final String TAG = null;
ImageView img;

List<String> list = new ArrayList<String>();@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    img = (ImageView) findViewById(R.id.imageone);    Bmob.initialize(this9ce1856638d44a6cefdfb67f721d0127"");    String newnew = geturl(1);    list.add(newnew);    Button button1 = (Button) findViewById(R.id.button1);    button1.setOnClickListener(new OnClickListener() {        public void onClick(View v) {            testBmob();        }    });}private String geturl(int k) {    BmobQuery<Picture> query = new BmobQuery<Picture>();    query.addWhereEqualTo(""id"" k);    query.findObjects(this new FindListener<Picture>() {        @Override        public void onError(int arg0 String arg1) {        }        @Override        public void onSuccess(List<Picture> arg0) {            Picture pics = arg0.get(0);            BmobFile pic = pics.getPicture();            IMAGE_URL = pic.getFileUrl(MainActivity.this);        }    });    return IMAGE_URL;}private void testBmob() {    String Image_dizhi = list.get(0);    new DownloadImageTask().execute(Image_dizhi);    /*new DownloadImageTask().execute(geturl(1));*/    //我的问题在这   为什么直接调用函数能显示图片,通过list保存url地址然后再取出后为什么安卓应用程序就停止运行了。}public void toast(String msg) {    Toast.makeText(this msg Toast.LENGTH_SHORT).show();    Log.d(TAG msg);}class DownloadImageTask extends AsyncTask<String Void Drawable> {    @Override    protected Drawable doInBackground(String... urls) {        // TODO Auto-generated method stub        return loadImageFromNetwork(urls[0]);    }    protected void onPostExecute(Drawable result) {        img.setImageDrawable(result);    }    private Drawable loadImageFromNetwork(String imageUrl) {        Drawable drawable = null;        try {            drawable = Drawable.createFromStream(                    new URL(imageUrl).openStream()image.jpg"");        } catch (IOException e) {            Log.d(""test"" e.getMessage());        }        if (drawable == null) {            Log.d(""test""null drawable"");        } else {            Log.d(""test""not null drawable"");        }        return drawable;    }}

}

解决方案

你确定你的list里面是有值的吗?query.findObjects看上去明显是个异步的函数,在你没有取得IMAGE_URL值的时候,geturl(int k)方法就已经执行到了return IMAGE_URL;这一步了,所以估计你的错误就是空指针异常了,之后之所以执行正常,是因为你开始的时候执行了String newnew = geturl(1);这个方法,导致IMAGE_URL值已经存在了,不再为空!你可以自己调试下试试。断点设置在geturl()方法里面

解决方案二:
建议你先将 geturl(1) 通过 LOG 输出看看是不是你想要的结果。

解决方案三:
用handler吧,百度下

时间: 2024-10-25 18:14:12

关于list产生的问题 安卓 求大神帮助啊 已经摆弄了一天了 我已经确定问题在哪 却不知道为什么的相关文章

求大神指教 ajaxFileUpload 上传多个文件时候 springMVC 只接受到了一个文件 不知道在怎么回事

问题描述 求大神指教ajaxFileUpload上传多个文件时候springMVC只接受到了一个文件不知道怎么回事后台用@RequestParamMultipartFile[]myfiles来接受的if(typeof(fileElementId)=='string'){fileElementId=[fileElementId];}for(variinfileElementId){//按namevaroldElement=jQuery('#'+fileElementId[i]);varnewEle

安卓-求大神简单直白描述,我看了一些资料,还是看不懂

问题描述 求大神简单直白描述,我看了一些资料,还是看不懂 安卓里适配器到底是什么意思?参数又是什么意思?有什么作用?怎么用? 解决方案 适配器就是让两个不相兼容的东西配合在一起的物件. 比如说你家的电源是220V的,你买了一个日本的电器,需要100V的电压,你需要一个变压器,这就是适配器. 再比如,你有如下两段代码: void printList(ArrayList<int> data) { ... } int[] GetData() { ... } 你希望输出得到的数据,但是显示数据的函数需

html-AngularJS监听时间代码我看不懂,求大神解答

问题描述 AngularJS监听时间代码我看不懂,求大神解答 angular.module("ezstuff",[]) .directive("ezNamecardEditor",function(){ return { restrict : "E", template : " ", replace : true, link : function(scope,element,attrs){ //获得变量名称 var model

从jsp中向servlet传数据库指针的写法不知道对不对,rs是不是可以传过去,求大神指导

问题描述 从jsp中向servlet传数据库指针的写法不知道对不对,rs是不是可以传过去,求大神指导 rs是数据库指针,想在servlet中获取rs数据库指针,不知道这么写对不对

安卓小白 求大神解析json 求代码

问题描述 安卓小白 求大神解析json 求代码 { "date": "20140617", "stories": [ { "title": "千万不要干傻事", "ga_prefix": "09", "images": [ "http://www.baidu.com/img/baidu_sylogo1.gif" ], "

用java开发一个安卓客户端在线交流APP,是怎么实现添加好友的?求大神帮我看看这段代码。

问题描述 用java开发一个安卓客户端在线交流APP,是怎么实现添加好友的?求大神帮我看看这段代码. private void submit() { dialog = ProgressDialog.show(this, "提示", "处理中.."); new AsyncTask() { @Override protected String doInBackground(String... params) { String urlString = AppConstan

安卓关于View的滑动处理的问题,求大神指导指导

问题描述 安卓关于View的滑动处理的问题,求大神指导指导 看了一下书,说一个view里,如果setOnTouchListener,那么onTouch()方法就会先于onTouchEvent()执行, 就是onTouch()会消耗了滑动事件,并返回true和不再调用onTouchEvent(),如果onTouch()返回false,表示未消耗滑动事件,然后就会调用onTouchEvent()处理. 然后我想了一想,如果onTouch()里消耗了滑动事件,但我又返回false,那么会是怎样的情况?

如何用H5来开发安卓手机App软件?用哪个开发软件?想做一下混合开发。求大神回复。

问题描述 如何用H5来开发安卓手机App软件?用哪个开发软件?想做一下混合开发.求大神回复. 如何用H5来开发安卓手机App软件?用哪个开发软件?想做一下混合开发.求大神回复. 解决方案 phonegap居于phonegap的cordova可以将html页面编译的兼容ios,Android及其他平台的安装包

安卓应用开发-安卓问题,求大神解答

问题描述 安卓问题,求大神解答 安卓mediaplayer报-19 0和-38 0错误,是由于什么原因引起的??????? 解决方案 求大神帮解答javaEE这个问题,谢谢了 解决方案二: android设计多媒体程序时,出现mediaplayer的(-38, 0)报错, 一般是由于在MediaPlayer还没有同步(Prepared)的状态下调用了 mediaplayer对象.start()方法,所以解决的办法,就是在设置好数据源之后,先调用 mediaplayer对象.prepare() 语