将ListView和ArrayAdpater传递给另一个类

弗拉特林

我正在尝试实现此库https://github.com/ShirwaM/Simplistic-RSS

该库按说明进行操作,但是我不喜欢如何处理提要输出。基本上,在主要活动的私有类内部,它直接调用ListView和ArrayAdapter。这意味着如果我想要两个显示两个提要的ListView,则必须复制整个私有类。我想做的是让它接受传递给它的ArrayAdapater和ListView,这样我就可以旋转该类,然后只需两次调用它,就将相关的提要URL和ListView传递给输出。

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;


public class MainActivity extends Activity
{
    private ListView mList;
    private ListView lList;
    ArrayAdapter<String> adapter;
    ArrayAdapter<String> adapterSecond;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.rss_layout);

        lList = (ListView) findViewById(R.id.listTwo);
        mList = (ListView) findViewById(R.id.listOne);

        adapterSecond = new ArrayAdapter<String>(this, R.layout.basic_list_item);
        adapter = new ArrayAdapter<String>(this, R.layout.basic_list_item);
        new GetRssFeed().execute("http://feeds.arstechnica.com/arstechnica/index");
        new GetRssFeedSecond().execute("http://feeds.skynews.com/feeds/rss/home.xml");
    }

    private class GetRssFeed extends AsyncTask<String, Void, Void>
    {
        @Override
        protected Void doInBackground(String... params)
        {
            try
            {
                RssReader rssReader = new RssReader(params[0]);
                Integer i = 0;
                for (RssItem item : rssReader.getItems())
                {
                    adapter.add(item.getTitle());
                    i++;
                    if(i == 7)
                    {
                        break;
                    }
                }

            } catch (Exception e)
            {
                Log.v("Error Parsing Data", e + "");
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid)
        {
            super.onPostExecute(aVoid);
            adapter.notifyDataSetChanged();
            mList.setAdapter(adapter);
        }
    }

    private class GetRssFeedSecond extends AsyncTask<String, Void, Void>
    {
        @Override
        protected Void doInBackground(String... params)
        {
            try
            {
                RssReader rssReader = new RssReader(params[0]);
                Integer i = 0;
                for (RssItem item : rssReader.getItems()) {
                    adapter.add(item.getTitle());
                    i++;
                    if (i == 7) {
                        break;
                    }

                }
            } catch (Exception e)
            {
                Log.v("Error Parsing Data", e + "");
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid)
        {
            super.onPostExecute(aVoid);
            adapterSecond.notifyDataSetChanged();
            lList.setAdapter(adapterSecond);
        }
    }

}

如您所见GetRssFeed,因为根据Simplistic-RSS示例代码,它是使用Adapter和ListView硬编码的,所以我需要创建两个GetRssFeed类来生成两个不同的ListView。我想做到这一点,所以我有一个GetRssFeed可以通过传递给它的相关Adapter和ListView进行调用的功能。

拉古·纳加茹(Raghu Nagaraju)

在GetRssFeed类中,添加一个接受2个参数url和listview的构造函数,如果要更改适配器,则添加3个参数,如下所示。

public GetRssFeed(String feedUrl, ListView listView) {
   this.feedUrl = feedUrl;
   this.listView = listView;

}

将GetRssFeed类中的这两个变量定义为实例变量并使用它们。

然后,从onCreate调用,如下所示,

new GetRssFeed("http://feeds.arstechnica.com/arstechnica/index", listView).execute();

您的单个AsyncTask将如下所示,

 private class GetRssFeed extends AsyncTask<String, Void, Void>
{
    ListView listView;
    String url;
    ArrayAdapter adapter;

    public GetRssFeed(String url, ListView listView, ArrayAdapter adapter) {
        this.listView = listView;
        this.url = url;
        this.adapter = adapter;
    }
    @Override
    protected Void doInBackground(String... params)
    {
        try
        {

            Log.d("tag", "nayana url "+url);
            RssReader rssReader = new RssReader(params[0]);
            Integer i = 0;
            for (RssItem item : rssReader.getItems())
            {
                adapter.add(item.getTitle());
                i++;
                if(i == 7)
                {
                    break;
                }
            }

        } catch (Exception e)
        {
            Log.v("Error Parsing Data", e + "");
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void aVoid)
    {
        super.onPostExecute(aVoid);
        adapter.notifyDataSetChanged();
        mList.setAdapter(adapter);
    }
}

在onCreate中,您调用

new GetRssFeed("http://feeds.arstechnica.com/arstechnica/index", lList, ADAPTER).execute();
    new GetRssFeed("http://feeds.skynews.com/feeds/rss/home.xml", mList, adapterSECOND).execute();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数组传递给另一个类

来自分类Dev

将一个类传递给另一个类(Python)

来自分类Dev

将一个类的对象传递给另一个类的方法

来自分类Dev

使用构造函数将一个类传递给另一个类

来自分类Dev

PHP将一个类传递给另一个类构造函数

来自分类Dev

将一个类传递给另一个类

来自分类Dev

将指向一个派生类的指针传递给另一个

来自分类Dev

试图将一个对象的实例传递给另一个类

来自分类Dev

如何获取listView位置值并通过intent传递给另一个类

来自分类Dev

将类函数指针传递给另一个类

来自分类Dev

将当前类的对象传递给另一个类

来自分类Dev

将类及其功能传递给另一个类

来自分类Dev

C ++试图将类传递给另一个类的构造函数

来自分类Dev

gmock:如何将模拟类的指针传递给另一个类?

来自分类Dev

将另一个类的对象传递给单例类

来自分类Dev

将模板类实例传递给另一个类的构造函数

来自分类Dev

将模板类的对象传递给另一个类的构造函数

来自分类Dev

将类的方法作为参数传递给C ++中的另一个类

来自分类Dev

将类引用传递给另一个类不起作用

来自分类Dev

C++ 将类的引用传递给另一个类

来自分类Dev

如何将ListView上的数据动态传递给另一个活动

来自分类Dev

将一个类中的数据传递给另一个类中的函数

来自分类Dev

将模拟的静态方法传递给另一个类

来自分类Dev

C ++:如何将指针传递给另一个类的成员函数?

来自分类Dev

目标c将滑块值传递给另一个类

来自分类Dev

Swift-将DynamoDB分页输出结果传递给另一个类

来自分类Dev

如何使用IoC将函数传递给另一个类

来自分类Dev

如何将volatile变量传递给另一个类?

来自分类Dev

如何将编写的对象传递给另一个类的构造函数?

Related 相关文章

  1. 1

    将数组传递给另一个类

  2. 2

    将一个类传递给另一个类(Python)

  3. 3

    将一个类的对象传递给另一个类的方法

  4. 4

    使用构造函数将一个类传递给另一个类

  5. 5

    PHP将一个类传递给另一个类构造函数

  6. 6

    将一个类传递给另一个类

  7. 7

    将指向一个派生类的指针传递给另一个

  8. 8

    试图将一个对象的实例传递给另一个类

  9. 9

    如何获取listView位置值并通过intent传递给另一个类

  10. 10

    将类函数指针传递给另一个类

  11. 11

    将当前类的对象传递给另一个类

  12. 12

    将类及其功能传递给另一个类

  13. 13

    C ++试图将类传递给另一个类的构造函数

  14. 14

    gmock:如何将模拟类的指针传递给另一个类?

  15. 15

    将另一个类的对象传递给单例类

  16. 16

    将模板类实例传递给另一个类的构造函数

  17. 17

    将模板类的对象传递给另一个类的构造函数

  18. 18

    将类的方法作为参数传递给C ++中的另一个类

  19. 19

    将类引用传递给另一个类不起作用

  20. 20

    C++ 将类的引用传递给另一个类

  21. 21

    如何将ListView上的数据动态传递给另一个活动

  22. 22

    将一个类中的数据传递给另一个类中的函数

  23. 23

    将模拟的静态方法传递给另一个类

  24. 24

    C ++:如何将指针传递给另一个类的成员函数?

  25. 25

    目标c将滑块值传递给另一个类

  26. 26

    Swift-将DynamoDB分页输出结果传递给另一个类

  27. 27

    如何使用IoC将函数传递给另一个类

  28. 28

    如何将volatile变量传递给另一个类?

  29. 29

    如何将编写的对象传递给另一个类的构造函数?

热门标签

归档