ниже мой анализатор RSS в приложении. Теперь я хочу, чтобы те же данные были вставлены в класс виджетов, чтобы я мог показать RSS -каналы в виджет. Может ли кто -нибудь показать мне, как передать эти данные приложения в мой список виджетов. Ниже приведены классы приложения и виджетов. < /p>
Примечание. Я заменю переменные «заголовок» и «контент» в listprovider.java, чтобы показать мои данные там. Дайте мне знать, если кому -то нужно больше классов, которые я могу опубликовать, если требуется. < /p>
Например: ImageAndtexts1.get (position) .getPubdate () будет содержать дату из RSS -каналов. Как я могу передать это в строке в listprovider.java ?? < /p>
twitterfeeds.java
public class TwitterFeeds extends Activity {
/** Called when the activity is first created. */
ListView _rssFeedListView;
List jobs;
List rssStr;
private TwitterAdapter _adapter;
TextView textview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
_rssFeedListView = (ListView) findViewById(R.id.rssfeed_listview);
textview = (TextView) findViewById(R.id.loading);
RssFeedTask rssTask = new RssFeedTask();
rssTask.execute();
}
public class RssFeedTask extends AsyncTask {
// private String Content;
private ProgressDialog Dialog;
String response = "";
@Override
public void onPreExecute() {
}
@Override
public String doInBackground(String... urls) {
try {
String feed = "http://timesofindia.feedsportal.com/c/3 ... /index.rss";
XmlHandler rh = new XmlHandler();
rssStr = rh.getLatestArticles(feed);
} catch (Exception e) {
}
return response;
}
@Override
public void onPostExecute(String result) {
if (rssStr != null) {
_adapter = new TwitterAdapter(TwitterFeeds.this, rssStr);
_rssFeedListView.setAdapter(_adapter);
textview.setVisibility(View.INVISIBLE);
_rssFeedListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
//Toast.makeText(getBaseContext(), "TwitterFeeds", Toast.LENGTH_LONG).show();
// TODO Auto-generated method stub
}
});
}
}
}
}
< /code>
twitterAdapter.java
public class TwitterAdapter extends ArrayAdapter {
List imageAndTexts1 = null;
Context context;
public static String passtitletowidget;
public TwitterAdapter(Activity activity,List imageAndTexts) {
super(activity, 0, imageAndTexts);
imageAndTexts1 = imageAndTexts;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
context = getContext();
Activity activity = (Activity) getContext();
LayoutInflater inflater = activity.getLayoutInflater();
View rowView = inflater.inflate(R.layout.twitteradapter, 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 {
passtitletowidget = imageAndTexts1.get(position).getTitle();
Log.d("rssfeed", "imageAndTexts1.get(position).getImgLink() :: " + imageAndTexts1.get(position).getImgLink() + " :: " + imageAndTexts1.get(position).getTitle());
//Underline HashTags -- To identify Mentioned user name; use this "@([A-Za-z0-9_-]+)"
SpannableString hashtagintitle = new SpannableString(imageAndTexts1.get(position).getTitle());
Matcher matcher = Pattern.compile("#([A-Za-z0-9_-]+)").matcher(hashtagintitle);
while (matcher.find())
{
hashtagintitle.setSpan(new ForegroundColorSpan(Color.BLUE), matcher.start(), matcher.end(), 0);
}
textView.setText(hashtagintitle);
timeFeedText.setText(imageAndTexts1.get(position).getPubDate());
//Underline Date
/*SpannableString content = new SpannableString(imageAndTexts1.get(position).getPubDate());
content.setSpan(new UnderlineSpan(), 0, 13, 0);
timeFeedText.setText(content);*/
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();
Bitmap img = BitmapFactory.decodeStream(is);
imageView.setImageBitmap(img);
} else {
imageView.setBackgroundResource(R.drawable.rss_tab_tweets);
}
}
//Share Button
Button Button1= (Button) rowView.findViewById(R.id.sharebutton);
Button1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
//Share Data
String shareBody = imageAndTexts1.get(position).getDescription();
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
context.startActivity(Intent.createChooser(sharingIntent, shareBody));
//Share Data ends
}
});
//Share Button ends
//OpenWith Button
Button Button2= (Button) rowView.findViewById(R.id.openwith);
Button2.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
//OpenWith Data
Intent i = new Intent(Intent.ACTION_VIEW);
// We have to set data for our new Intent
i.setData(Uri.parse(imageAndTexts1.get(position).getLink()));
// And start activity with our Intent
context.startActivity(i);
//OpenWith Data ends
}
});
//OpenWith Button ends
} catch (MalformedURLException e) {
} catch (IOException e) {
}
return rowView;
}
}
< /code>
listprovider.java
public class ListProvider implements RemoteViewsFactory {
private ArrayList listItemList = new ArrayList();
private Context context = null;
private int appWidgetId;
public ListProvider(Context context, Intent intent) {
this.context = context;
appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
populateListItem();
}
private void populateListItem() {
for (int i = 0; i < 10; i++) {
ListItem listItem = new ListItem();
listItem.heading = "Heading" + i;
listItem.content = i
+ " This is the content of the app widget listview.Nice content though";
listItemList.add(listItem);
}
}
@Override
public int getCount() {
return listItemList.size();
}
@Override
public long getItemId(int position) {
return position;
}
/*
*Similar to getView of Adapter where instead of View
*we return RemoteViews
*
*/
@Override
public RemoteViews getViewAt(int position) {
final RemoteViews remoteView = new RemoteViews(
context.getPackageName(), R.layout.list_row);
ListItem listItem = listItemList.get(position);
remoteView.setTextViewText(R.id.heading, listItem.heading);
remoteView.setTextViewText(R.id.content, listItem.content);
return remoteView;
}
@Override
public RemoteViews getLoadingView() {
return null;
}
@Override
public int getViewTypeCount() {
return 1;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public void onCreate() {
}
@Override
public void onDataSetChanged() {
}
@Override
public void onDestroy() {
}
}
Подробнее здесь: https://stackoverflow.com/questions/187 ... oid-widget
Как передавать асинхронные данные в виджет Android ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1758925073
Anonymous
ниже мой анализатор RSS в приложении. Теперь я хочу, чтобы те же данные были вставлены в класс виджетов, чтобы я мог показать RSS -каналы в виджет. Может ли кто -нибудь показать мне, как передать эти данные приложения в мой список виджетов. Ниже приведены классы приложения и виджетов. < /p>
Примечание. Я заменю переменные «заголовок» и «контент» в listprovider.java, чтобы показать мои данные там. Дайте мне знать, если кому -то нужно больше классов, которые я могу опубликовать, если требуется. < /p>
Например: ImageAndtexts1.get (position) .getPubdate () будет содержать дату из RSS -каналов. Как я могу передать это в строке в listprovider.java ?? < /p>
twitterfeeds.java
public class TwitterFeeds extends Activity {
/** Called when the activity is first created. */
ListView _rssFeedListView;
List jobs;
List rssStr;
private TwitterAdapter _adapter;
TextView textview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
_rssFeedListView = (ListView) findViewById(R.id.rssfeed_listview);
textview = (TextView) findViewById(R.id.loading);
RssFeedTask rssTask = new RssFeedTask();
rssTask.execute();
}
public class RssFeedTask extends AsyncTask {
// private String Content;
private ProgressDialog Dialog;
String response = "";
@Override
public void onPreExecute() {
}
@Override
public String doInBackground(String... urls) {
try {
String feed = "http://timesofindia.feedsportal.com/c/33039/f/533944/index.rss";
XmlHandler rh = new XmlHandler();
rssStr = rh.getLatestArticles(feed);
} catch (Exception e) {
}
return response;
}
@Override
public void onPostExecute(String result) {
if (rssStr != null) {
_adapter = new TwitterAdapter(TwitterFeeds.this, rssStr);
_rssFeedListView.setAdapter(_adapter);
textview.setVisibility(View.INVISIBLE);
_rssFeedListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
//Toast.makeText(getBaseContext(), "TwitterFeeds", Toast.LENGTH_LONG).show();
// TODO Auto-generated method stub
}
});
}
}
}
}
< /code>
twitterAdapter.java
public class TwitterAdapter extends ArrayAdapter {
List imageAndTexts1 = null;
Context context;
public static String passtitletowidget;
public TwitterAdapter(Activity activity,List imageAndTexts) {
super(activity, 0, imageAndTexts);
imageAndTexts1 = imageAndTexts;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
context = getContext();
Activity activity = (Activity) getContext();
LayoutInflater inflater = activity.getLayoutInflater();
View rowView = inflater.inflate(R.layout.twitteradapter, 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 {
passtitletowidget = imageAndTexts1.get(position).getTitle();
Log.d("rssfeed", "imageAndTexts1.get(position).getImgLink() :: " + imageAndTexts1.get(position).getImgLink() + " :: " + imageAndTexts1.get(position).getTitle());
//Underline HashTags -- To identify Mentioned user name; use this "@([A-Za-z0-9_-]+)"
SpannableString hashtagintitle = new SpannableString(imageAndTexts1.get(position).getTitle());
Matcher matcher = Pattern.compile("#([A-Za-z0-9_-]+)").matcher(hashtagintitle);
while (matcher.find())
{
hashtagintitle.setSpan(new ForegroundColorSpan(Color.BLUE), matcher.start(), matcher.end(), 0);
}
textView.setText(hashtagintitle);
timeFeedText.setText(imageAndTexts1.get(position).getPubDate());
//Underline Date
/*SpannableString content = new SpannableString(imageAndTexts1.get(position).getPubDate());
content.setSpan(new UnderlineSpan(), 0, 13, 0);
timeFeedText.setText(content);*/
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();
Bitmap img = BitmapFactory.decodeStream(is);
imageView.setImageBitmap(img);
} else {
imageView.setBackgroundResource(R.drawable.rss_tab_tweets);
}
}
//Share Button
Button Button1= (Button) rowView.findViewById(R.id.sharebutton);
Button1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
//Share Data
String shareBody = imageAndTexts1.get(position).getDescription();
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
context.startActivity(Intent.createChooser(sharingIntent, shareBody));
//Share Data ends
}
});
//Share Button ends
//OpenWith Button
Button Button2= (Button) rowView.findViewById(R.id.openwith);
Button2.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
//OpenWith Data
Intent i = new Intent(Intent.ACTION_VIEW);
// We have to set data for our new Intent
i.setData(Uri.parse(imageAndTexts1.get(position).getLink()));
// And start activity with our Intent
context.startActivity(i);
//OpenWith Data ends
}
});
//OpenWith Button ends
} catch (MalformedURLException e) {
} catch (IOException e) {
}
return rowView;
}
}
< /code>
listprovider.java
public class ListProvider implements RemoteViewsFactory {
private ArrayList listItemList = new ArrayList();
private Context context = null;
private int appWidgetId;
public ListProvider(Context context, Intent intent) {
this.context = context;
appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
populateListItem();
}
private void populateListItem() {
for (int i = 0; i < 10; i++) {
ListItem listItem = new ListItem();
listItem.heading = "Heading" + i;
listItem.content = i
+ " This is the content of the app widget listview.Nice content though";
listItemList.add(listItem);
}
}
@Override
public int getCount() {
return listItemList.size();
}
@Override
public long getItemId(int position) {
return position;
}
/*
*Similar to getView of Adapter where instead of View
*we return RemoteViews
*
*/
@Override
public RemoteViews getViewAt(int position) {
final RemoteViews remoteView = new RemoteViews(
context.getPackageName(), R.layout.list_row);
ListItem listItem = listItemList.get(position);
remoteView.setTextViewText(R.id.heading, listItem.heading);
remoteView.setTextViewText(R.id.content, listItem.content);
return remoteView;
}
@Override
public RemoteViews getLoadingView() {
return null;
}
@Override
public int getViewTypeCount() {
return 1;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public void onCreate() {
}
@Override
public void onDataSetChanged() {
}
@Override
public void onDestroy() {
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/18766527/how-to-pass-async-data-to-android-widget[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия