java - 将一个元素从一个 listView 添加到另一个 listView

标签 java android android-listview

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

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

    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());
    }
}

}

最佳答案

您可以将按钮添加到RecyclerviewListView中的项目布局。 然后设置操作ClickItemListener。当单击添加按钮时,您可以将单击的行项目的数据存储到Shared PreferencesSqlite。当您打开选项卡 Collection 夹重新加载 View 并从您存储的数据中获取数据时。

关于java - 将一个元素从一个 listView 添加到另一个 listView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32000224/

相关文章:

android - 如何更改android中的数字选择器样式?

android - ListFragment 缺少分隔符

java - 在回收器 View 中的嵌套回收器 View 内的嵌套列表中添加项目

Android根据listview id从数据库中获取单行

java反编译器,在intellij-idea的实际物理位置保存行号

curly-braces - 您是否使用花括号进行额外的范围界定?

java - 我可以在 Java 项目中使用 PhoneGap 吗?

java - 接口(interface) : profit of using

java - 如何从 JSONObject 的路径中获取嵌套值?

android - 使用 MPAndroidChart 库的折线图问题