Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

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


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

 
Topic : 097205



โพสกระทู้ ( 190 )
บทความ ( 0 )



สถานะออฟไลน์



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

Code
01.public class RssReaderActivity extends Activity implements AsyncTaskCompletionListener{
02.    private ListView listview;
03. 
04.    @Override
05.    protected void onCreate(Bundle savedInstanceState) {
06.        super.onCreate(savedInstanceState);
07.        setContentView(R.layout.rss_reader);
08.        listview=(ListView)findViewById(R.id.rssfeed_listview);
09.        if(Utility.determineConnectivity(this)){
10.         new RssFeedAsyncTask(this).execute(Utility.url);
11. 
12.         //  *** เพิ่มส่วนนี้เข้าไป ***
13.         String url = "http://www.example.com";
14.         Intent i = new Intent(Intent.ACTION_VIEW);
15.         i.setData(Uri.parse(url));
16.         startActivity(i);
17. 
18.        }
19.        else{
20.            Toast.makeText(this, "No Internet Connection", Toast.LENGTH_SHORT).show();
21.        }
22.         
23.}


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

Code
01.public class RssReaderListAdapter extends ArrayAdapter<RssFeedStructure> {
02.    List<RssFeedStructure> imageAndTexts1 = null;
03. 
04.    public RssReaderListAdapter(Activity activity,
05.            List<RssFeedStructure> imageAndTexts) {
06.        super(activity, 0, imageAndTexts);
07.        imageAndTexts1 = imageAndTexts;
08.         
09.        // Permission StrictMode
10.        if (android.os.Build.VERSION.SDK_INT > 9) {
11.            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
12.            StrictMode.setThreadPolicy(policy);
13.        }
14.    }
15. 
16.    @Override
17.    public View getView(int position, View convertView, ViewGroup parent) {
18. 
19.        Activity activity = (Activity) getContext();
20.        LayoutInflater inflater = activity.getLayoutInflater();
21. 
22.        View rowView = inflater.inflate(R.layout.rssfeedadapter_layout, null);
23.        TextView textView = (TextView) rowView.findViewById(R.id.feed_text);
24.        TextView timeFeedText = (TextView) rowView
25.                .findViewById(R.id.feed_updatetime);
26.        ImageView imageView = (ImageView) rowView.findViewById(R.id.feed_image);
27.        try {
28. 
29.            Log.d("rssfeed", "imageAndTexts1.get(position).getImgLink() :: "
30.                    + imageAndTexts1.get(position).getImgLink() + " :: "
31.                    + imageAndTexts1.get(position).getTitle()+ " :: "
32.                    + imageAndTexts1.get(position).getUrl());
33.            textView.setText(imageAndTexts1.get(position).getTitle());
34.            SpannableString content = new SpannableString(imageAndTexts1.get(
35.                    position).getPubDate());
36.            content.setSpan(new UnderlineSpan(), 0, 13, 0);
37. 
38.            timeFeedText.setText(content);
39.             
40.             // โค้ดที่เพิ่มเข้าไป  OnClick Item
41.            imageAndTexts1.setOnItemClickListener(new OnItemClickListener() {
42.                  public void onItemClick(AdapterView<?> myAdapter, View myView, int position, long mylng) {
43.                
44.                      Toast.makeText(getApplicationContext(), imageAndTexts1.get(position).getUrl(), Toast.LENGTH_SHORT).show();
45.                       
46.                  }    
47.            });
48.             
49.            if (imageAndTexts1.get(position).getImgLink() != null) {
50. 
51.                URL feedImage = new URL(imageAndTexts1.get(position)
52.                        .getImgLink().toString());
53.                if (!feedImage.toString().equalsIgnoreCase("null")) {
54.                    HttpURLConnection conn = (HttpURLConnection) feedImage
55.                            .openConnection();
56.                    InputStream is = conn.getInputStream();
57.                     
58.                    imageView.setLayoutParams(new LinearLayout.LayoutParams(200, 200));
59.                    Bitmap img = BitmapFactory.decodeStream(is);
60.         
61.                    imageView.setImageBitmap(img);
62.                } else {
63.                     
64.                    imageView.setBackgroundResource(R.drawable.im);
65.                }
66.            }
67. 
68.        } catch (MalformedURLException e) {
69. 
70.        } catch (IOException e) {
71. 
72.        }
73. 
74.        return rowView;
75. 
76.    }


แต่มันแสดง error แบบนี้ในโค้ดครับ
Quote:
The method setOnItemClickListener(new OnItemClickListener(){}) is undefined for the type List<RssFeedStructure>


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



Tag : Mobile, Android

Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-06-29 16:51:32 By : mmc01 View : 1307 Reply : 1
 

 

No. 1



โพสกระทู้ ( 74,059 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

สร้าง Event ไว้ข้างนอกได้หรือเปล่าครับ

Code (Android-Java)
01.// OnClick Item
02.lisView1.setOnItemClickListener(new OnItemClickListener() {
03.    public void onItemClick(AdapterView<?> myAdapter, View myView,
04.            int position, long mylng) {
05. 
06.        String sMemberID = MyArrList.get(position).get("MemberID")
07.                .toString();
08.        String sName = MyArrList.get(position).get("Name")
09.                .toString();
10.        String sTel = MyArrList.get(position).get("Tel")
11.                .toString();
12.         
13.        //String sMemberID = ((TextView) myView.findViewById(R.id.ColMemberID)).getText().toString();
14.        // String sName = ((TextView) myView.findViewById(R.id.ColName)).getText().toString();
15.        // String sTel = ((TextView) myView.findViewById(R.id.ColTel)).getText().toString();
16.         
17.        viewDetail.setIcon(android.R.drawable.btn_star_big_on);
18.        viewDetail.setTitle("Member Detail");
19.        viewDetail.setMessage("MemberID : " + sMemberID + "\n"
20.                + "Name : " + sName + "\n" + "Tel : " + sTel);
21.        viewDetail.setPositiveButton("OK",
22.                new DialogInterface.OnClickListener() {
23.                    public void onClick(DialogInterface dialog,
24.                            int which) {
25.                        // TODO Auto-generated method stub
26.                        dialog.dismiss();
27.                    }
28.                });
29.        viewDetail.show();
30. 
31.    }
32.});


Android JSON Retrieving Data from URL Web Server (PHP MySQL and JSON)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-01 08:45:15 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Android อยากทราบวิธีการอ่าน onItemClick จากคลาสที่ไม่ได้ extends Activity ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่