Android อยากทราบวิธีการอ่าน onItemClick จากคลาสที่ไม่ได้ extends Activity ครับ

ผมได้ศึกษา RssFeed จากเว็บนี้ครับ http://amitandroid.blogspot.com/2013/02/android-rssfeed-with-async-task-example.html ซึ่งตอนนี้สามารถอ่าน RssFeed มาแสดงบน Android ได้แล้วเหมือนตัวอย่างในเว็บ แต่โค้ดในเว็บมันไม่ได้เขียนให้เปิดลิ้งค์หน้าเว็บจาก RssFeed ที่อ่านมาครับ ผมได้ลองแก้โค้ดในไฟล์ RssReaderActivity.java ให้เป็นแบบนี้ครับ

public class RssReaderActivity extends Activity implements AsyncTaskCompletionListener{
    private ListView listview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.rss_reader);
        listview=(ListView)findViewById(R.id.rssfeed_listview);
        if(Utility.determineConnectivity(this)){
         new RssFeedAsyncTask(this).execute(Utility.url);

         //  *** เพิ่มส่วนนี้เข้าไป ***
         String url = "http://www.example.com";
         Intent i = new Intent(Intent.ACTION_VIEW);
         i.setData(Uri.parse(url));
         startActivity(i);

        }
        else{
            Toast.makeText(this, "No Internet Connection", Toast.LENGTH_SHORT).show();
        }
}



แต่พอรันแล้วมันจะเปิดเว็บ http://www.example.com เลย ไม่แสดง RssFeed ครับ ผมจึงคิดว่าควรจะไปแก้ไขโค้ดในไฟล์ RssReaderListAdapter.java มากกว่า ผมจึงแก้โค้ดในฟังก์ชัน getView() แบบนี้ครับ

public class RssReaderListAdapter extends ArrayAdapter<RssFeedStructure> {
    List<RssFeedStructure> imageAndTexts1 = null;

    public RssReaderListAdapter(Activity activity,
            List<RssFeedStructure> imageAndTexts) {
        super(activity, 0, imageAndTexts);
        imageAndTexts1 = imageAndTexts;
        
        // Permission StrictMode
        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        Activity activity = (Activity) getContext();
        LayoutInflater inflater = activity.getLayoutInflater();

        View rowView = inflater.inflate(R.layout.rssfeedadapter_layout, null);
        TextView textView = (TextView) rowView.findViewById(R.id.feed_text);
        TextView timeFeedText = (TextView) rowView
                .findViewById(R.id.feed_updatetime);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.feed_image);
        try {

            Log.d("rssfeed", "imageAndTexts1.get(position).getImgLink() :: "
                    + imageAndTexts1.get(position).getImgLink() + " :: "
                    + imageAndTexts1.get(position).getTitle()+ " :: "
                    + imageAndTexts1.get(position).getUrl());
            textView.setText(imageAndTexts1.get(position).getTitle());
            SpannableString content = new SpannableString(imageAndTexts1.get(
                    position).getPubDate());
            content.setSpan(new UnderlineSpan(), 0, 13, 0);

            timeFeedText.setText(content);
            
             // โค้ดที่เพิ่มเข้าไป  OnClick Item
            imageAndTexts1.setOnItemClickListener(new OnItemClickListener() {
                  public void onItemClick(AdapterView<?> myAdapter, View myView, int position, long mylng) {
              
                      Toast.makeText(getApplicationContext(), imageAndTexts1.get(position).getUrl(), Toast.LENGTH_SHORT).show();
                      
                  }    
            });
            
            if (imageAndTexts1.get(position).getImgLink() != null) {

                URL feedImage = new URL(imageAndTexts1.get(position)
                        .getImgLink().toString());
                if (!feedImage.toString().equalsIgnoreCase("null")) {
                    HttpURLConnection conn = (HttpURLConnection) feedImage
                            .openConnection();
                    InputStream is = conn.getInputStream();
                    
                    imageView.setLayoutParams(new LinearLayout.LayoutParams(200, 200));
                    Bitmap img = BitmapFactory.decodeStream(is);
        
                    imageView.setImageBitmap(img);
                } else {
                    
                    imageView.setBackgroundResource(R.drawable.im);
                }
            }

        } catch (MalformedURLException e) {

        } catch (IOException e) {

        }

        return rowView;
    }




แต่มันแสดง error แบบนี้ในโค้ดครับ

The method setOnItemClickListener(new OnItemClickListener(){}) is undefined for the type List<RssFeedStructure>

ไม่ทราบว่าทำยังไงถึงจะเปิดลิ้งค์ของ RssFeed จากข้อความใน ListView ได้ครับ
แก้ไขข้อความเมื่อ

แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่