مشکل در ساخت لینک
توی این نرم افزار rss خوانی که طراحی شده
تگ لینک رو مقدارش رو به صورت زیر گذاشتم ولی زمان اجراء برنامه کرش میکنه مشکل کجاست دوستان؟
public void fill(final ArrayAdapter<RssParser.Item> adapter, final RssParser.Item item, final int position) {
txtTitle.setText(item.title);
txtDate.setText(item.pubDate);
txtCategory.setText(item.category);
Spanned description = Html.fromHtml(item.description);
if (description.length() > 300) {
description = (Spanned) description.subSequence(0, 300);
}
txtDescription.setText(description);
//این قسمت تعریف شده
String linkText = "<a href='" + item.link + "'>نمایش</a>";
txtlink.setText(Html.fromHtml(linkText));
txtlink.setMovementMethod(LinkMovementMethod.getInstance());
}
07-04 16:46:43.810: E/AndroidRuntime(3163): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
این خطارو میده
از این کد استفاده کنید :
Intent intent = new Intent(context,MainActivity.class);
intent .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
داداش من برنامه نویس php هستم اندروید رو دستو پاشکسته دیدم فعلا چون مجبور بودم فعلا یه rss readerبسازم
من الان نمیدونم باید این کدی رو که دادی رو کجا بذارم
من یه کلاس G دارم یه کلاس RssParser دارم یه کلاس AdapterItems رو دارم و یه کلاس ActivityStartup این کد کجای کدوم قرار میگیره؟
یعنی به این شکل
public class AdapterItems extends ArrayAdapter<RssParser.Item> {
public AdapterItems(ArrayList<RssParser.Item> array) {
super(G.context, 0, array);
Intent intent = new Intent(G.context, ActivityStartup.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
G.context.startActivity(intent);
}
...
اقای کاشی زاده این دستور باید به چه شکل تو کد قرار داده بشه؟
اقا کسی یه کمکی به ما نمیده؟
این لینک برنامه
http://s2.picofile.com/file/8261841618/darinews.zip.html
دوست عزیز راه حل مشکل شما بسیار سادست!
شما به جای context از currentActivity استفاده کنید یا نام اکتیویتی رو بزار بعد this !
به اینصورت؛ بجای :
public class AdapterItems extends ArrayAdapter<RssParser.Item> { public AdapterItems(ArrayList<RssParser.Item> array) { super(G.context, 0, array); Intent intent = new Intent(G.context, ActivityStartup.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); G.context.startActivity(intent); }
از این استفاده کن :
public class AdapterItems extends ArrayAdapter<RssParser.Item> { public AdapterItems(ArrayList<RssParser.Item> array) { super(G.context, 0, array); Intent intent = new Intent(G.currentActivity, ActivityStartup.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); G.currentActivity.startActivity(intent); }
که البته باید currentActivity رو در کلاس G و EnhancedActivity تعریف کرده باشید !
محمدحسین جان حواسشون نبود بجای currentActivity از context برای Intent استفاده کردن !
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .