Android Can';不要显示图像

Android Can';不要显示图像,android,html-parsing,jsoup,android-imageview,Android,Html Parsing,Jsoup,Android Imageview,我无法显示我分析的图像,因为在getStringExtra中我收到一个错误。代码 public class SingleActivity extends Activity { // JSON node keys private static final String TAG_TITOLI = "titoli"; private static final Bitmap TAG_IMMAGINE = immagine; @Override public v

我无法显示我分析的图像,因为在
getStringExtra
中我收到一个错误。代码

public class SingleActivity extends Activity {

    // JSON node keys
    private static final String TAG_TITOLI = "titoli";
    private static final Bitmap TAG_IMMAGINE = immagine;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.single_item);


        // getting intent data
        Intent in = getIntent();

        // Get JSON values from previous intent
        String titoli = in.getStringExtra(TAG_TITOLI);
        Bitmap immagine = in.getStringExtra(TAG_IMMAGINE); //error


        // Displaying all values on the screen
        TextView lblName = (TextView) findViewById(R.id.titoli_label);
        ImageView lblImg = (ImageView) findViewById(R.id.imgeIV);


        lblName.setText(titoli);
        lblImg.setImageBitmap(immagine);

    }
}
这里:
Bitmap immagine=in.getStringExtra(TAG_immagine)String
?谢谢

我试图按照建议进行操作,但在logcat中出现了以下错误:

01-19 18:40:32.989: E/AndroidRuntime(9000): FATAL EXCEPTION: main
01-19 18:40:32.989: E/AndroidRuntime(9000): Process: it.rs.esempioparsinglistview, PID: 9000
01-19 18:40:32.989: E/AndroidRuntime(9000): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.rs.esempioparsinglistview/it.rs.esempioparsinglistview.SingleActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'byte[] java.lang.String.getBytes()' on a null object reference
01-19 18:40:32.989: E/AndroidRuntime(9000):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2215)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2265)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at android.app.ActivityThread.access$800(ActivityThread.java:145)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at android.os.Handler.dispatchMessage(Handler.java:102)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at android.os.Looper.loop(Looper.java:136)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at android.app.ActivityThread.main(ActivityThread.java:5081)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at java.lang.reflect.Method.invoke(Native Method)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-19 18:40:32.989: E/AndroidRuntime(9000): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'byte[] java.lang.String.getBytes()' on a null object reference
01-19 18:40:32.989: E/AndroidRuntime(9000):     at android.util.Base64.decode(Base64.java:118)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at it.rs.esempioparsinglistview.SingleActivity.onCreate(SingleActivity.java:44)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at android.app.Activity.performCreate(Activity.java:5231)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-19 18:40:32.989: E/AndroidRuntime(9000):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
01-19 18:40:32.989: E/AndroidRuntime(9000):     ... 9 more
以前的活动:

public class MainActivity extends Activity {
    ProgressDialog mProgressDialog;
    public static final String TAG_TITOLI = "titoli";
    private static final String TAG_CONTENT = "content";
    ListView lista;

    public Button immaginebtn; 

    static final String BLOG_URL = "http://www.multiplayer.it";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lista = (ListView)this.findViewById(R.id.main_lista);//recupero lista da id

        //View inflatedView = getLayoutInflater().inflate(R.layout.riga_listview, null);
        //immaginebtn = (Button)findViewById(R.id.immaginebtn);
        //creo ed eseguo l'asynctask
        ParsingPaginaWeb parsing = new ParsingPaginaWeb();
        parsing.execute("");

        // Immagine btn
        /*immaginebtn.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
                // Execute Logo AsyncTask
                new Logo().execute();
            }
        });*/
        //new Logo().execute();

         // Launching new screen on Selecting Single ListItem
            lista.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    // getting values from selected ListItem
                    String titoli = ((TextView) view.findViewById(R.id.riga_listview_titolo)).getText().toString();
                    //String cont = ((TextView) view.findViewById(R.id.riga_descrizione)).getText().toString();
                    //String description = ((TextView) view.findViewById(R.id.mobile)).getText().toString();

                    // Starting new intent
                    Intent in = new Intent(getApplicationContext(), SingleActivity.class);
                    in.putExtra(TAG_TITOLI, titoli);
                    //in.putExtra(TAG_CONTENT, cont);
                    //in.putExtra(TAG_PHONE_MOBILE, description);
                    startActivity(in);

                }
            });

    }

    private class ParsingPaginaWeb extends AsyncTask<String,String,String> {

        ArrayList<String> titoli; //lista dei titoli
        List<Integer> immagine = new ArrayList<Integer>(); 
        //ArrayList<String> content; //lista delle descrizioni

        @Override
        protected void onPreExecute()
        {   
            //Toast.makeText(MainActivity.this ,"Caricamento lista titoli...", Toast.LENGTH_SHORT).show();
            //prima di eseguire il parsing inizializzo gli arraylist
            mProgressDialog = new ProgressDialog(MainActivity.this);
            mProgressDialog.setTitle("Multiplayer.it");
            mProgressDialog.setMessage("Caricamento articoli...");
            mProgressDialog.setIndeterminate(false);
            mProgressDialog.show();

            titoli = new ArrayList<String>();
            immagine = new ArrayList<Integer>(); 
            //content = new ArrayList<String>();
        }

        @Override
        protected String doInBackground(String... params) {
            try {

                Document doc = Jsoup.connect(BLOG_URL).get();
                //Elements nodeBlogStatsimg = doc.select("img[src~=(?i)\\.(jpe?g)]");
                Elements nodeBlogStats = doc.select("div.news-col-0 h3"); //per multiplayer.it Elements nodeBlogStats = doc.select("div.news-col-0 h3"); per ftv #comunePartINI > option
                for(Element sezione : nodeBlogStats)
                {
                    titoli.add(sezione.text());


                }
            } catch (Exception e) {
                // In caso di errore
                Log.e("ESEMPIO", "ERRORE NEL PARSING");
            }
            return null;
        }



        @Override
        protected void onPostExecute(String result)
        {
            // dopo che ho eseguito il parsing mostro i dati nella listview
            // usando il custom array adpater ParsingArrayAdapter
            ParsingArrayAdapter adapter = new ParsingArrayAdapter(MainActivity.this, titoli, immagine);
            lista.setAdapter(adapter);
            mProgressDialog.dismiss();
            new Logo().execute();
        }


    }

    // Classe per caricamento immagini..

    // Logo AsyncTask

    private class Logo extends AsyncTask<Void, Void, Void> {
        Bitmap bitmap;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            mProgressDialog = new ProgressDialog(MainActivity.this);
            mProgressDialog.setTitle("Android Basic JSoup Tutorial");
            mProgressDialog.setMessage("Loading...");
            mProgressDialog.setIndeterminate(false);
            mProgressDialog.show();
        }

        @Override
        protected Void doInBackground(Void... params) {

            try {
                // Connect to the web site
                Document document = Jsoup.connect(BLOG_URL).get();
                // Using Elements to get the class data 
                Elements img = document.select("div.news-col-0 img[src]");
                // Locate the src attribute
                String imgSrc = img.attr("src");
                // Download image from URL
                InputStream input = new java.net.URL(imgSrc).openStream();
                // Decode Bitmap
                bitmap = BitmapFactory.decodeStream(input);

            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // Set downloaded image into ImageView
            ImageView logoimg = (ImageView) findViewById(R.id.imageView1);
            logoimg.setImageBitmap(bitmap);
            mProgressDialog.dismiss();

           // ParsingArrayAdapter adapter = new ParsingArrayAdapter(MainActivity.this, titoli);
           // lista.setAdapter(adapter);
        }
    }

}
公共类MainActivity扩展活动{
进程对话框;
公共静态最终字符串标记_TITOLI=“TITOLI”;
私有静态最终字符串标记_CONTENT=“CONTENT”;
ListView lista;
公共按钮;
静态最终字符串BLOG_URL=”http://www.multiplayer.it";
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lista=(ListView)this.findViewById(R.id.main_lista);//recupero lista da id
//视图充气视图=GetLayoutFlater()。充气(R.layout.riga_listview,null);
//immaginebtn=(按钮)findViewById(R.id.immaginebtn);
//creo ed eseguo l'asynctask
ParsingPaginaWeb解析=新建ParsingPaginaWeb();
解析。执行(“”);
//伊玛吉酒店
/*setOnClickListener(新的OnClickListener(){
公共void onClick(视图arg0){
//执行标识异步任务
新徽标().execute();
}
});*/
//新徽标().execute();
//在选择单个列表项时启动新屏幕
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//从选定的ListItem获取值
字符串titoli=((TextView)view.findViewById(R.id.riga_listview_titolo)).getText().toString();
//String cont=((TextView)view.findViewById(R.id.riga_descripione)).getText().toString();
//字符串描述=((TextView)view.findviewbyd(R.id.mobile)).getText().toString();
//开始新的意图
Intent in=newintent(getApplicationContext(),SingleActivity.class);
in.putExtra(TAG_TITOLI,TITOLI);
//in.putExtra(标签内容,续);
//in.putExtra(标签、手机、说明);
星触觉(in);
}
});
}
私有类ParsingPaginaWeb扩展异步任务{
ArrayList titoli;//lista dei titoli
List immagine=new ArrayList();
//ArrayList content;//lista delle Descriptioni
@凌驾
受保护的void onPreExecute()
{   
//Toast.makeText(MainActivity.this,“Caricamento lista titoli…”,Toast.LENGTH_SHORT.show();
//prima di eseguire il il Izzo gli arraylist
mProgressDialog=新建ProgressDialog(MainActivity.this);
mProgressDialog.setTitle(“Multiplayer.it”);
setMessage(“Caricamento articoli…”);
mProgressDialog.setUndeterminate(false);
mProgressDialog.show();
titoli=新的ArrayList();
immagine=newarraylist();
//content=newarraylist();
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
试一试{
Document doc=Jsoup.connect(BLOG_URL.get();
//元素nodeBlogStatsimg=doc.select(“img[src~=(?i)\\(jpe?g)]”;
元素nodeBlogStats=doc.select(“div.news-col-0 h3”);//每多人游戏。it元素nodeBlogStats=doc.select(“div.news-col-0 h3”);每ftv#comunePartINI>选项
对于(元素sezione:nodeBlogStats)
{
titoli.add(sezione.text());
}
}捕获(例外e){
//在卡索迪埃罗
Log.e(“ESEMPIO”、“ERRORE-NEL解析”);
}
返回null;
}
@凌驾
受保护的void onPostExecute(字符串结果)
{
//dopo che ho eseguito il Datti nella列表视图
//usando il自定义数组adpater ParsingArrayAdapter
ParsingArrayAdapter适配器=新的ParsingArrayAdapter(main activity.this,titoli,immagine);
setAdapter(适配器);
mProgressDialog.disclose();
新徽标().execute();
}
}
//按卡里门托·伊马基尼分类。。
//标识异步任务
私有类标识扩展了异步任务{
位图;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
mProgressDialog=新建ProgressDialog(MainActivity.this);
setTitle(“Android基本JSoup教程”);
设置消息(“加载…”);
mProgressDialog.setUndeterminate(false);
mProgressDialog.show();
}
@凌驾
受保护的Void doInBackground(Void…参数){
试一试{
//连接到网站
Document Document=Jsoup.connect(BLOG_URL.get();
//使用元素获取类数据
元素img=document.select(“div.news-col-0 img[src]”);
//找到src属性
字符串imgSrc=img.attr(“src”);
//从URL下载图像
InputStream input=new java.net.URL(imgSrc.openStream();
//解码位图
位图=BitmapFactory.decodeStream(输入);
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
String path = in.getStringExtra(TAG_IMMAGINE);
File imgFile = new  File(path);
if(imgFile.exists()){

    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);
    lblImg.setImageBitmap(myImage);

}
String string = in.getStringExtra(TAG_IMMAGINE);
byte [] encodeByte=Base64.decode(string,Base64.DEFAULT);
Bitmap bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
String base64Str = in.getStringExtra(TAG_IMMAGINE);
byte[] imageBytes = Base64.decode(base64Str, DEFAULT);
Bitmap immagine = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length);
// send where details is object...
Intent i = new Intent(context, SingleActivity.class);
i.putExtra(TAG_IMMAGINE, bitmap);
startActivity(i);


//receive in SingleActivity class...
Bitmap immagine = (Bitmap) intent.getParcelableExtra(TAG_IMMAGINE);