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,027

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



 

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
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() แบบนี้ครับ

Code
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 แบบนี้ในโค้ดครับ
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 : 1195 Reply : 1
 

 

No. 1



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

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

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

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

Code (Android-Java)
			// OnClick Item
			lisView1.setOnItemClickListener(new OnItemClickListener() {
				public void onItemClick(AdapterView<?> myAdapter, View myView,
						int position, long mylng) {
	
					String sMemberID = MyArrList.get(position).get("MemberID")
							.toString();
					String sName = MyArrList.get(position).get("Name")
							.toString();
					String sTel = MyArrList.get(position).get("Tel")
							.toString();
					
	                //String sMemberID = ((TextView) myView.findViewById(R.id.ColMemberID)).getText().toString();
	                // String sName = ((TextView) myView.findViewById(R.id.ColName)).getText().toString();
	                // String sTel = ((TextView) myView.findViewById(R.id.ColTel)).getText().toString();
	                
					viewDetail.setIcon(android.R.drawable.btn_star_big_on);
					viewDetail.setTitle("Member Detail");
					viewDetail.setMessage("MemberID : " + sMemberID + "\n"
							+ "Name : " + sName + "\n" + "Tel : " + sTel);
					viewDetail.setPositiveButton("OK",
							new DialogInterface.OnClickListener() {
								public void onClick(DialogInterface dialog,
										int which) {
									// TODO Auto-generated method stub
									dialog.dismiss();
								}
							});
					viewDetail.show();

				}
			});


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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

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