Android Open Source - SimpleReader Category Detail Adapter






From Project

Back to project page SimpleReader.

License

The source code is released under:

Apache License

If you think the Android project SimpleReader listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.dreamteam.app.adapter;
//  w  w w . ja  v a  2s.co  m
import java.util.ArrayList;

import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.TextView;

import com.dreamteam.app.commons.SectionHelper;
import com.dreamteam.app.db.DbManager;
import com.dreamteam.app.db.FeedDBManager;
import com.dreamteam.app.entity.Feed;
import com.dreamteam.app.ui.MainActivity;
import com.dreateam.app.ui.R;

public class CategoryDetailAdapter extends BaseAdapter
{
  public static final String tag = "CategoryDetailAdapter";
  private LayoutInflater inflater;
  private Context context;
  private ArrayList<Feed> feeds;
  private String tableName;//??????????
  public static final String SECTION_TABLE_NAME = "section";
  private int[] imgIds = {
      R.drawable.add,
      R.drawable.added
  };
  
  
  public CategoryDetailAdapter(Context context, ArrayList<Feed> feeds, String tableName)
  {
    this.context = context;
    this.feeds = feeds;
    this.tableName = tableName;
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  }
  
  public void updateData(ArrayList<Feed> feeds)
  {
    this.feeds = feeds;
    notifyDataSetChanged();
  }
  
  @Override
  public int getCount()
  {
    return feeds.size();
  }

  @Override
  public Object getItem(int position)
  {
    return feeds.get(position);
  }

  @Override
  public long getItemId(int id)
  {
    return id;
  }

  @Override
  public View getView(final int position, View convertView, ViewGroup parent)
  {
    final ViewHolder holder;
    
    if(convertView == null)
    {
      convertView = inflater.inflate(R.layout.category_detail_item, null);
      holder = new ViewHolder();
      holder.feedTitle = (TextView) convertView.findViewById(R.id.category_detail_feed_title);
      holder.addBtn = (ImageButton) convertView.findViewById(R.id.category_detail_add);
      convertView.setTag(holder);
    }
    else
    {
      holder = (ViewHolder) convertView.getTag();
    }
    holder.addBtn.setOnClickListener(new OnClickListener()
    {
      @Override
      public void onClick(View v)
      {
        Feed feed = feeds.get(position);
        String title = feed.getTitle();
        String url = feed.getUrl();
        Intent intent = new Intent();
        int state = 0;//??????
        DbManager mgr = new DbManager(context, DbManager.DB_NAME, null, 1);

        //???????????????
        if(feed.isSelected())
        {
          //??????feeds
          feed.setSelectStatus(state);
          holder.addBtn.setImageResource(imgIds[0]);
          //???????
          intent.putExtra("url", feed.getUrl());
          intent.setAction(MainActivity.ACTION_DELETE_SECTION);
          context.sendBroadcast(intent);
          //??section?????????
          SectionHelper.removeRecord(mgr.getWritableDatabase(), url);
          //??feed.db??????????0
          new FeedDBManager(context, FeedDBManager.DB_NAME, null, 1)
                .updateState(tableName, state, url);
          return;
        }
        //??????????
        state = 1;
        feed.setSelectStatus(state);
        holder.addBtn.setImageResource(imgIds[1]);
        //???????
        intent.setAction(MainActivity.ACTION_ADD_SECTION);
        context.sendBroadcast(intent);
        //??section?
        SQLiteDatabase db = mgr.getWritableDatabase();
        SectionHelper.insert(db, tableName, title, url);
        db.close();
        //??feed.db??????????1
        FeedDBManager feedHelper = new FeedDBManager(context, FeedDBManager.DB_NAME, null, 1);
        feedHelper.updateState(tableName,state, url);
      }
    });
    Feed feed = feeds.get(position);
    holder.feedTitle.setText((CharSequence)
        feed.getTitle());
    //addBtn???????
    holder.addBtn.setImageResource(imgIds[feed.getSelectStatus()]);
    return convertView;
  }
  
  private static final class ViewHolder
  {
    TextView feedTitle;
    ImageButton addBtn;
  }
  
}




Java Source Code List

com.dreamteam.app.adapter.CategoryDetailAdapter.java
com.dreamteam.app.adapter.FeedCategoryAdapter.java
com.dreamteam.app.adapter.GridAdapter.java
com.dreamteam.app.adapter.GuideViewPagerAdapter.java
com.dreamteam.app.adapter.ItemListAdapter.java
com.dreamteam.app.adapter.MPagerAdapter.java
com.dreamteam.app.commons.AppConfig.java
com.dreamteam.app.commons.AppContext.java
com.dreamteam.app.commons.HtmlFilter.java
com.dreamteam.app.commons.IFlyHelper.java
com.dreamteam.app.commons.ItemListEntityParser.java
com.dreamteam.app.commons.SectionHelper.java
com.dreamteam.app.commons.SeriaHelper.java
com.dreamteam.app.commons.SkinManager.java
com.dreamteam.app.commons.UIHelper.java
com.dreamteam.app.config.Contants.java
com.dreamteam.app.db.DbManager.java
com.dreamteam.app.db.FavoItemDbHelper.java
com.dreamteam.app.db.FeedDBManager.java
com.dreamteam.app.db.provider.RSSFeedCategoryProvider.java
com.dreamteam.app.entity.FeedItem.java
com.dreamteam.app.entity.Feed.java
com.dreamteam.app.entity.ItemListEntity.java
com.dreamteam.app.entity.RSSFeedCategroy.java
com.dreamteam.app.entity.Section.java
com.dreamteam.app.img.FileCacheManager.java
com.dreamteam.app.img.FileCache.java
com.dreamteam.app.img.ICache.java
com.dreamteam.app.img.ImageLoadTask.java
com.dreamteam.app.img.ImageLoad.java
com.dreamteam.app.img.ImageLoader.java
com.dreamteam.app.img.MemoryCache.java
com.dreamteam.app.rss.Dates.java
com.dreamteam.app.rss.Integers.java
com.dreamteam.app.rss.MediaAttributes.java
com.dreamteam.app.rss.MediaEnclosure.java
com.dreamteam.app.rss.MediaThumbnail.java
com.dreamteam.app.rss.RSSBase.java
com.dreamteam.app.rss.RSSConfig.java
com.dreamteam.app.rss.RSSException.java
com.dreamteam.app.rss.RSSFault.java
com.dreamteam.app.rss.RSSFeed.java
com.dreamteam.app.rss.RSSHandler.java
com.dreamteam.app.rss.RSSItem.java
com.dreamteam.app.rss.RSSLoader.java
com.dreamteam.app.rss.RSSParserSPI.java
com.dreamteam.app.rss.RSSParser.java
com.dreamteam.app.rss.RSSReaderException.java
com.dreamteam.app.rss.RSSReader.java
com.dreamteam.app.rss.Resources.java
com.dreamteam.app.ui.About.java
com.dreamteam.app.ui.BaseActivity.java
com.dreamteam.app.ui.BaseTitledActivity.java
com.dreamteam.app.ui.CategoryDetailActivity.java
com.dreamteam.app.ui.ColorListActivity.java
com.dreamteam.app.ui.FavoriteItemList.java
com.dreamteam.app.ui.FeedCategoryActivity.java
com.dreamteam.app.ui.FeedbackUI.java
com.dreamteam.app.ui.GuideActivity.java
com.dreamteam.app.ui.ImageDialog.java
com.dreamteam.app.ui.ImagesBrowseActivity.java
com.dreamteam.app.ui.ItemDetailActivity.java
com.dreamteam.app.ui.ItemListActivity.java
com.dreamteam.app.ui.LocalImageBrowseActivity.java
com.dreamteam.app.ui.LoginDialog.java
com.dreamteam.app.ui.MainActivity.java
com.dreamteam.app.ui.Setting.java
com.dreamteam.app.ui.SplashActivity.java
com.dreamteam.app.ui.SwitchBgActivity.java
com.dreamteam.app.ui.WidgetProvider.java
com.dreamteam.app.ui.adapter.ColorListAdapter.java
com.dreamteam.app.utils.CategoryNameExchange.java
com.dreamteam.app.utils.DateUtils.java
com.dreamteam.app.utils.FileUtils.java
com.dreamteam.app.utils.HttpUtils.java
com.dreamteam.app.utils.ImageLoader.java
com.dreamteam.app.utils.ImageUtils.java
com.dreamteam.app.utils.Logger.java
com.dreamteam.app.utils.MD5.java
com.dreamteam.app.utils.StringUtils.java
com.dreamteam.app.wallpaper.ChildAdapter.java
com.dreamteam.app.wallpaper.GroupGridAdapter.java
com.dreamteam.app.wallpaper.ImageBean.java
com.dreamteam.app.wallpaper.MyImageView.java
com.dreamteam.app.wallpaper.NativeImageLoader.java
com.dreamteam.app.wallpaper.WallPaperManager.java
com.dreamteam.custom.ui.PathAnimations.java
com.dreamteam.custom.ui.PullToRefreshListView.java