将listView中的元素添加到另一个listView

时间:2015-08-13 23:47:13

标签: java android android-listview

我想在新闻上创建一个添加到收藏夹操作栏按钮,如果单击该按钮,将新闻添加到收藏夹选项卡中的新列表适配器,您能否帮我实现按钮并告诉我如何创建新列表?

这是我的代码:(显示点击的新闻)

    public class ListItemClicked extends ActionBarActivity {

    static Bundle extras;

    SectionsPagerAdapter mSectionsPagerAdapter;
    static ImageLoader imageLoader;
    static DisplayImageOptions options;




    ViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_item_clicked);


        mSectionsPagerAdapter = new  SectionsPagerAdapter(getSupportFragmentManager());

        extras = getIntent().getExtras();

        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mSectionsPagerAdapter);

        //Setup the ImageLoader, we'll use this to display our images
        ImageLoaderConfiguration config = new  ImageLoaderConfiguration.Builder(this).build();
        imageLoader = ImageLoader.getInstance();
        imageLoader.init(config);

        //Setup options for ImageLoader so it will handle caching for us.
        options = new DisplayImageOptions.Builder()
                .cacheInMemory()
                .cacheOnDisc()
                .build();

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main_activity2, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        return id == R.id.action_settings || super.onOptionsItemSelected(item);

    }



    public class SectionsPagerAdapter extends FragmentPagerAdapter {

        public SectionsPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return PlaceholderFragment.newInstance(position + 1);
        }

        @Override
        public int getCount() {
            return 2;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            Locale l = Locale.getDefault();
            switch (position) {
                case 0:
                    return getString(R.string.title_section4).toUpperCase(l);
                case 1:
                    return getString(R.string.title_section5).toUpperCase(l);
            }
            return null;
        }
    }


    public static class PlaceholderFragment extends Fragment {


        private static final String ARG_SECTION_NUMBER = "section_number";


        public static PlaceholderFragment newInstance(int sectionNumber) {
            PlaceholderFragment fragment = new PlaceholderFragment();
            Bundle args = new Bundle();
            args.putInt(ARG_SECTION_NUMBER, sectionNumber);
            fragment.setArguments(args);
            return fragment;
        }

        public PlaceholderFragment() {
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState)
        {

            View rootView = inflater.inflate(R.layout.fragment_list_item_clicked, container, false);


            TextView pDate = (TextView) rootView.findViewById(R.id.textView);
            pDate.setText( extras.getString("pdate") );


            TextView ptitle = (TextView) rootView.findViewById(R.id.section_label);
            ptitle.setText(extras.getString("pname"));


            TextView pnText = (TextView) rootView.findViewById(R.id.textView2);
            pnText.setText( extras.getString("pText"));




            //Setup a listener we can use to swtich from the loading indicator to the Image once it's ready
            ImageLoadingListener listener = new ImageLoadingListener(){



                @Override
                public void onLoadingStarted(String arg0, View arg1) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onLoadingCancelled(String arg0, View arg1) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
                    // i/ndicator.setVisibility(View.INVISIBLE);
                    // iconImg.setVisibility(View.VISIBLE);
                }
                @Override
                public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
                    // TODO Auto-generated method stub

                }

            };

            //Load the image and use our options so caching is handled.
            final ImageView iconImg = (ImageView) rootView.findViewById(R.id.imageView);
            imageLoader.displayImage( extras.getString("pImage"), iconImg, options, listener);



            return rootView;
        }
    }

}

the first list adaptor with news news from list adaptor clicked the favorites tab 这是listView的代码:

public class Noutati1 extends Activity {

private SitesAdapter mAdapter;
private ListView sitesList;
private Context context;



@Override
protected void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    Log.i("StackSites", "OnCreate()");
    setContentView(R.layout.noutati);

    context = this;

    //Get reference to our ListView
    sitesList = (ListView)findViewById(R.id.sitesList);




  sitesList.setOnItemClickListener(new     AdapterView.OnItemClickListener() {

      @Override
      public void onItemClick(AdapterView<?> parent, View v, int pos,long id) {
      String Title = mAdapter.getItem(pos).getName();
      String nDate = mAdapter.getItem(pos).getnDate();
      String ImageUrl = mAdapter.getItem(pos).getImgUrl();
      String Text = mAdapter.getItem(pos).getnText();
      String VideoUrl = mAdapter.getItem(pos).getVideoUrl();
      Intent i = new Intent(context, ListItemClicked.class);
      //i.setData(Uri.parse(VideoUrl));

      i.putExtra("pname", Title);
      i.putExtra("pdate", nDate);
      i.putExtra("pText", Text);
      i.putExtra("pImage", ImageUrl);


      startActivity(i);

     }

  });




  /*
   * If network is available download the xml from the Internet.
   * If not then try to use the local file from last time.
   */

    if(isNetworkAvailable()){
        Log.i("StackSites", "starting download Task");
        SitesDownloadTask download = new SitesDownloadTask();
        download.execute();
    }else{
        mAdapter = new SitesAdapter(getApplicationContext(), -1,  SitesXmlPullParser.getStackSitesFromFile(Noutati1.this));
        sitesList.setAdapter(mAdapter);
    }

}

//Helper method to determine if Internet connection is available.
private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager
            = (ConnectivityManager)  getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo =  connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null &&  activeNetworkInfo.isConnected();
}

/*
 * AsyncTask that will download the xml file for us and store it locally.
 * After the download is done we'll parse the local file.
 */
private class SitesDownloadTask extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... arg0) {
        //Download the file
        try {
              Downloader.DownloadFromUrl("http://www.link..../news.xml",  openFileOutput("news.xml", Context.MODE_PRIVATE));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onPostExecute(Void result){
        //setup our Adapter and set it to the ListView.
        mAdapter = new SitesAdapter(context, -1,  SitesXmlPullParser.getStackSitesFromFile(Noutati1.this));
        sitesList.setAdapter(mAdapter);
        Log.i("StackSites", "adapter size = " + mAdapter.getCount());
    }
}

}

1 个答案:

答案 0 :(得分:0)

您可以在RecyclerviewListView的项目布局中添加按钮。 然后设置操作ClickItemListener。单击“添加”按钮,您可以将单击的行项数据存储到Shared PreferencesSqlite。当您打开标签页最喜欢的重新加载视图并从您存储的数据中获取数据时。