رفتن به مطلب

دریافت RSS سایت ها ( ساخت برنامه خبری )


Elyas Erfani

ارسال‌های توصیه شده

سلام و درود خدمت اساتید عـــــــزیـــــــــــــــز

 

اموزش دریافت RSS سایت ها و ساخت ی برنامه ساده خبری انلاین

 

ابتدا کتابخانه های زیر رو فعال کنید

HTTP

Phone

XmlSax

 

خوب ما میخوایم برای این ادرس برنامه رو بسازیم

 

http://www.yjc.ir/fa/rss/allnews

 

اخبارش هم به روزه :D

 

 

 

 

ابتدا در قسمت

Process_Globals

	Dim Parser As SaxParser
	Dim HttpClient1 As HttpClient
	Dim Hr As HttpRequest
    Dim Str1 As String

سپس در Sub Globals

Dim GetListView As ListView
				Dim Title, Link, PubDate, Description As String
				Dim BufferText As String
				Dim NewFeed As String	

اینجا

GetListView

همون لیست وویوی هستش ک توی دیزاینر ادد کردیم و میخوایم عناوین درش نشون داده بشه

 

خوب شروع میکنیم در قسمت

Activity_Create

 

GetListView.Width = 100%x
				GetListView.Height = 100%y
	   Parser.Initialize
				HttpClient1.Initialize("HttpClient1")
				Hr.InitializeGet("http://www.yjc.ir/fa/rss/allnews")
				HttpClient1.Execute(Hr, 1)

اینجا اومدیم ک طول و ارتفاع لیست ویومونو 100% کردیم

و

HttpClient1

رو

Initialize

کردیم و ادرس RSS مورد نظرو بهش دادیم

 

حالا میایم ی ساب ایجاد میکنیم ب نام :

HttpClient1_ResponseSuccess(Response As HttpResponse, TaskId As Int)

 

و در اون مینویسیم :

Sub HttpClient1_ResponseSuccess(Response As HttpResponse, TaskId As Int)
ProgressDialogShow("لطفا صبر کنید")
    Response.GetAsynchronously("GetGetListView",	File.OpenOutput(File.DirDefaultExternal, "RSS.xml", False), True, TaskId)
End Sub

 

حالا ی ساب دیگه ایجاد میکنیم ا اگه خطایی پیش اومد بهمون بگه :

HttpClient1_ResponseError(Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int)

 

Sub HttpClient1_ResponseError(Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int)
    If Response <> Null Then
       Msgbox("Error: " & Response.GetString("UTF8"), "Connection Error")
							Response.Release
    End If
End Sub

سپس ی ساب دیگه ایجاد میکنیم واسه وقتی ک تموم شد ایتم های لیست ویومون دریافت شدن :

GetGetListView_StreamFinish(Success As Boolean, TaskId As Int)


Sub GetGetListView_StreamFinish(Success As Boolean, TaskId As Int)
ProgressDialogHide
				If Success = False Then
							Msgbox(LastException.Message, "Error")
       Return
				End If			
				Dim In As InputStream
				In = File.OpenInput(File.DirDefaultExternal, "RSS.xml")
				Parser.Parse(In, "Parser")
				In.Close
				NewFeed = File.ReadString(File.DirDefaultExternal, "RSS.xml")
End Sub

و ساب اخر رو هم ایجاد میکنیم با نام :

Parser_EndElement(Uri As String, Name As String, Text As StringBuilder)

				If Parser.Parents.IndexOf("item") > -1 Then		
		     If Name = "title" Then			
			       Title = Text.ToString	
		     Else If Name = "link" Then		
			       Link = Text.ToString	
		     Else If Name = "pubdate" Then			       
										PubDate = Text.ToString								
							Else If Name = "description" Then
							   Description = Text.ToString
		     End If
	   End If
				If Name = "item" Then
GetListView.AddSingleLine2(Title, Description)
Dim Label2 As Label
Label2 = GetListView.SingleLineLayout.Label
Label2.TextSize = 15
Label2.Left = Label2.width - 5dip
Label2.TextColor = Colors.White

و در اخر هم باید ی ساب واسه

GetListView

تعریف کنیم ک وقتی روی ایتمش کلیک شد ی متن اون خبرو نشون بده

GetListView_ItemClick(Position As Int, Value As Object)

Sub GetListView_ItemClick(Position As Int, Value As Object)
Str1 = Value
    StartActivity("Matn")
End Sub

ی اکتیویتی هم میسازیم با نام

Matn

ک وقتی روی ایتم های لیست ویو کلیک شد بره داخل اون و متن خبرو نمایش بده

 

واسه نمایش متن خبر هم میشه از وب وییو استفاده کرد هم با مرورگر خود گوشی باز کرد

 

در اکتیویتی Matn :

 

Sub Globals
 Private WebView1 As WebView
End Sub

ودر

Activity_Create

Sub Activity_Create(FirstTime As Boolean)
	WebView1.LoadHtml(""&Main.Str1)
End Sub

وب وییو میاد و 

Str1

رو ک در اکتیویتی Main مشخص کردیم باز میکنه

 

خــــســــــتــــــه شــــــــــدم انقد تایپ کردم :zoor:  :zoor: :zoor:  :zoor:  

مـــــــــــــــــــــــــوفــــــــــــــــــــق بــــــــــــــــــــاشـــــــــــــــــــیـــــــــــــــد :@  :gol: 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • پاسخ 46
  • ایجاد شده
  • آخرین پاسخ

گفتم شاید کسی مشکلی داشته باشه با کدا


 


tazeha.PNG


 


سورس هم پیوست شد


 


رمز فایل فشرده :


basic4android.org


 


تـازه هـا.rar


لینک ارسال
به اشتراک گذاری در سایت های دیگر

آقا یه سوال :

چرا من وقتی توی ادیت باکس آدرس رو مینویسم و آدرسو میریم توی یه String  و اون متغیر رو به جای ادرس مینویسم این ارور رو میده ؟ 

Untitled_e61eb.png

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اگر ک میخواید ادرس رو داخل ادیت تکست بذارید از کد زیر استفاده کنید
فقط حتما حتما حتما دقت داشته باشین ک تمامی کدهای زیر رو از قسمت Activity_Create پاک کنید و در ساب یک دکمه مثل دکمه Load Rss قرار بدین
 


Private EditText1 As EditText
Parser.Initialize
HttpClient1.Initialize("HttpClient1") Hr.InitializeGet(EditText1.Text)
HttpClient1.Execute(Hr, 1)

ببخشید من با موبایلم نمیتونم از تگ کد استفاده کنم :gol:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

 

اگر ک میخواید ادرس رو داخل ادیت تکست بذارید از کد زیر استفاده کنید

فقط حتما حتما حتما دقت داشته باشین ک تمامی کدهای زیر رو از قسمت Activity_Create پاک کنید و در ساب یک دکمه مثل دکمه Load Rss قرار بدین

 


Private EditText1 As EditText
Parser.Initialize
HttpClient1.Initialize("HttpClient1") Hr.InitializeGet(EditText1.Text)
HttpClient1.Execute(Hr, 1)

ببخشید من با موبایلم نمیتونم از تگ کد استفاده کنم :gol:

داداش من تویه یه اکتیویتی دیگه تکست ادیت رو گزاشتم مقدارشم ریختم تویه یه متغیر

اگه بخوام از متغیر استفاده کنم باید چیکار کنم ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب مثلا شما ادیت تکستو توی اکتیویتی Main گذاشتید
و مقدار اونو برابر با ی متغیر از نوع String یا رشته قرار دادید
در Sub Globals اکتیویتی Main :

Private EditText1 As EditText
Dim s As String
s = EditText1.Text

و حالا میخواین توی ی اکتیویتی دیگه ادرس String یا رشته ک اونو با اسم s معرفی کردین بدیم
در ساب دکمه Load Rss در اکتیویتی دیگه :

Parser.Initialize
HttpClient1.Initialize("HttpClient1")
Hr.InitializeGet(Main.s)
HttpClient1.Execute(Hr , 1)


ب همین سادگی





Sent from my D2502 using Tapatalk

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خوب مثلا شما ادیت تکستو توی اکتیویتی Main گذاشتید

و مقدار اونو برابر با ی متغیر از نوع String یا رشته قرار دادید

در Sub Globals اکتیویتی Main :

Private EditText1 As EditText
Dim s As String
s = EditText1.Text

و حالا میخواین توی ی اکتیویتی دیگه ادرس String یا رشته ک اونو با اسم s معرفی کردین بدیم

در ساب دکمه Load Rss در اکتیویتی دیگه :

Parser.Initialize
HttpClient1.Initialize("HttpClient1")
Hr.InitializeGet(Main.s)
HttpClient1.Execute(Hr , 1)

ب همین سادگی

Sent from my D2502 using Tapatalk

داداش باز همون ارور رو داد 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما اجازه بدین من فردا واستون سورس مینویسم :gol:

الان دسترسی ب پی سی ندارم ممنون :gol:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

آقا من میخوام وقتی رو تیتر خبر کلیک شد داخل برنامه چیزی باز نکنه

بره به همون خبر تو همون سایت دوستان میشه راهنمایی کنید؟؟؟ممنون میشم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 هفته بعد...

سلام ، آقا تو رو خدا این آموزش رو ادامه بدید ، مثلا چه طوری عکس ها رو از هر خبر دریافت کنیم و توی لیست ویو بارگزاری کنیم ؟؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 1 ماه بعد...

سلام ، آقا تو رو خدا این آموزش رو ادامه بدید ، مثلا چه طوری عکس ها رو از هر خبر دریافت کنیم و توی لیست ویو بارگزاری کنیم ؟؟؟

سوال منم هست چه جوری عکس خبر رو هم نشون بدیم و تو ادامه مطلب با عکسش باشه نه فقط متن 

با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 هفته بعد...

من دقیقا همه کار ها رو درست انجام دادم ولی مطالب رو پیدا نمیکنع

احتمالا مشکل از لینک که به برنامه دادین 

من همین الان با یه لینک یه سایت خبری دیگه تست کردم درست بود

لینک ارسال
به اشتراک گذاری در سایت های دیگر

من دقیقا همه کار ها رو درست انجام دادم ولی مطالب رو پیدا نمیکنع

 

سلام

 

با تشکر از اقای بیات

 

خطایی چیزی میده ؟؟؟

 

عکس از خطا قرار بدید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

الیاس جان این امکان هارو واسش اضافه کن، دمت گرم

 

1- مطالبی که دریافت میکنه رو ذخیره کنه، یعنی وقتی که نت قطع میشه مطالب نپره

2- وقتی نت وصله و اون سایت بروز میشه، یه مسیج بیاد و بگه که آیا میخوایید برنامه بروز بشه

3- مطالبی که از rss میگیره رو با یه دکمه بشه به اشتراک گذاشت

 

حالا هر کدوم رو تونستی بزار، اگه سه تاش رو بزاری که خیلی آقایی :cheshmak:

 

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

من بار اول وارد برنامه میشم نشون میده کاملا هم درست نشون میده بار دوم به بعد نشون نمیده خطا هم نمیده فقط چیزی رو باز نمیکنه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام میشه یه آموزشی بذارید که به جای اینکه تو لیست ویو نمایش بده تو دیتا بیس ذخیره کنه.اخه من واسه عنوان خبر ها کارت طراحی کردم.در ضمن من باید این کد ها رو تو اکتیویتی main بنویسم یا اکتیویتی ای که کارت ها رو لود میکنه؟یه سوال دیگه هم داشتم:چطوری میشه از تو بیسیک تعداد فیلد های دیتا بیس رو به دست اورد؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • اضافه کردن...