2014-10-29 99 views
0

MainActivity.java//This是我主要的Java活动文件不幸的是MYAPP已经停止时,我是使用Eclipse

package com.example.news; 

import android.support.v7.app.ActionBarActivity; 
import android.content.Context; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.webkit.WebChromeClient.CustomViewCallback; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
//import java.awt.*; 
import java.lang.*; 
import java.io.*; 

public class MainActivity extends ActionBarActivity { 

    protected static final String Context = null; 
    String[] data={"Times of India","Deccan chronical","The Hindu","Hindusthan Times","Indian Express"}; 
    int[] image_id={R.drawable.toi,R.drawable.dc,R.drawable.hindu,R.drawable.htime,R.drawable.indian}; 
    ListView lv; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Customlistadapter adpt=new Customlistadapter(this,image_id,data); 
     lv=(ListView)findViewById(R.id.list1); 
     // ArrayAdapter<String> adpt=new ArrayAdapter<String>(this, R.layout.single_row,R.id.text1,data); 
     lv.setAdapter(adpt); 
     lv.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, int position, 
        long id) { 
       if(position==0) 
       { 
       //Intent intent=new Intent(MainActivity.this,SendMesasage.class); 
       //String message = "http:///"; 
       try 
       { 
        Intent i=new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.timesofindia.indiatimes.com")); 
       startActivity(i); 
       } 
       catch(Exception e) 
       { 
        // Log.i("soory"); 
        //System.out.println("Sorry"); 
        e.printStackTrace(); 
       } 
       //intent.putExtra("ABCD", message); 
       // startActivity(intent); 
       } 
       else if(position==1) 
       { 
         try 
         { 
         Intent i=new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.timesofindia.indiatimes.com")); 
        startActivity(i); 
         } 
         catch(Exception e) 
         { 
         // Log.i("soory"); 
         //System.out.println("Sorry"); 
         e.printStackTrace(); 
         } 

       } 

      } 


     });   
    } 



} 

即使我找不到任何错误,而调试程序启动我的应用程序在模拟器,当我启动应用程序显示,“不幸myapp已停止” 我不明白为什么会发生这种情况。 我看了一些与此问题有关的以前的帖子,但仍然找不到解决方案。

**CustomListAdapter.java** 


package com.example.news; 

import android.app.Activity; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 
import java.io.*; 
import java.lang.*; 

public class Customlistadapter extends ArrayAdapter{ 
    String[] data; 
    int[] image_id; 
    Context context; 
    public Customlistadapter(Activity context,int[] image_id2, String[] text){ 
    super(context, R.layout.single_row,text); 
    // TODO Auto-generated constructor stub 
    this.data=text; 
    this.image_id=image_id2; 
    this.context=context; 
    } 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    LayoutInflater inflater = (LayoutInflater) context 
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View single_row= inflater.inflate(R.layout.single_row, null, 
    true); 
    TextView textView=(TextView) single_row.findViewById(R.id.text1); 
    ImageView imageView = (ImageView) single_row.findViewById(R.id.imageView1); 
    textView.setText(data[position]); 
    imageView.setImageResource(image_id[position]); 
    return single_row; 
    } 
} 

当我推出这个节目,我会得到“不幸的是MYAPP已采空”,所以我认为这是空指针异常但我仍然无法修复它 所以,请你们帮我

activity_main.xml 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.news.MainActivity" > 

    <ListView 
     android:id="@+id/list1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true"> 

    </ListView> 
</RelativeLayout> 

回答

0

你getView()方法不correct.Change您getView()如下:

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 

     ViewHolder view; 

      if(convertView==null) 
      { 
       view = new ViewHolder(); 
       convertView=inflater.inflate(R.layout.single_row,null); 
       view. textView=(TextView)convertView.findViewById(R.id.title); 

       view.imageView=(ImageView)convertView.findViewById(R.id.list_image); 


       convertView.setTag(view); 
      } 
      else 
      { 
       view = (ViewHolder) convertView.getTag(); 
      } 

      view.textView.setText(data[position]); 
      view.imageView.setImageResource(image_id[position]); 

      return convertView; 

     } 

     public static class ViewHolder 
     { 
      public TextView textView; 
      public ImageView imageView; 
     } 
} 

而且初始化适配器构造内充气:

LayoutInflater inflater; 
public Customlistadapter(Activity context,int[] image_id2, String[] text){ 
    super(context, R.layout.single_row,text); 
    // TODO Auto-generated constructor stub 
    this.data=text; 
    this.image_id=image_id2; 
    this.context=context; 
    inflater = LayoutInflater.from(this.context); 
    } 

要正确认识一个列表视图的回收机制,则必须请教this

+0

但先生,当我没有在列表视图上使用evenhalders时,它工作正常,并显示图像与他们的名字意见 – 2014-10-29 05:43:22

+0

好吧我试图改变我的getview()方法ryt现在 – 2014-10-29 05:44:04