garlloc unregister handle state 40000001

Common bugs/problems with the Android SDK the Emulator and the ADT-Plugin.

garlloc unregister handle state 40000001

Postby oratis » Sun Nov 20, 2011 8:50 am

I finish my app days ago and I am now trying to find out why it can't run properly,I keep getting the same garlloc error in my logcat. now here are my codes, hope someone could solve my problem.

Splash.java

Code: Select all
package com.appkon.hdtvs;


import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;



public class Splash extends Activity {

    private ChannelDB mDB;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
        createdata();
       
}
    public boolean tabIsExist(String channelS_TABLE){
        boolean result = false;
        if(channelS_TABLE == null){
                return false;
        }
       Cursor cursor= ChannelDB.check();
        startManagingCursor(cursor);
        try {
                if(cursor.moveToNext()){
                        int count = cursor.getInt(0);
                        if(count>0){
                                result = true;
                        }
                }
               
        } catch (Exception e) {
           Log.e(this.toString(),"error:"+e.toString());
            Intent intent = new Intent(this,HDtvs.class); 
            startActivity(intent); 
            this.finish();
        }               
        return result;
    }
   
    public void createdata() {
   try{
        if (tabIsExist(null) == true){
           mDB.Reset();
            try{
            Bitmap bigbang1 = BitmapFactory.decodeResource(getResources(), R.drawable.bigbang1);
           
                 
            mDB.createchannelEntry(new ChannelPoster(bigbang1, "生活大爆炸(第一季)" ,"http://appkon.com/hdtvs/channel/bigbang1.xml"  ,"http://movie.douban.com/subject/5372374/" ));
         
            }catch (Exception e) {
               Log.e(this.toString(),"error:"+e.toString());
                Intent intent = new Intent(this,HDtvs.class); 
                startActivity(intent); 
                this.finish(); }
       
       
        }else{
           Intent intent = new Intent(this,HDtvs.class); 
            startActivity(intent); 
            this.finish();
        }}catch (Exception e) {
           Log.e(this.toString(),"error:"+e.toString());
            Intent intent = new Intent(this,HDtvs.class); 
            startActivity(intent); 
            this.finish(); }
    }

}


HDtvs.java


Code: Select all
package com.appkon.hdtvs;


import java.io.File;
import java.util.ArrayList;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent;
import android.content.res.Resources;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class HDtvs extends ListActivity {
    /** Called when the activity is first created. */
   
   private ImageButton likebutton;
   private ImageButton about;
    private ChannelDB mDB;
    @Override   
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
        likebutton =(ImageButton)findViewById(R.id.likebutton);
        about =(ImageButton)findViewById(R.id.about);
        ListView channellist = (ListView) findViewById(android.R.id.list);
        mDB = new ChannelDB(this);
                     
        String[] columns = {mDB.KEY_ID, mDB.KEY_POSTER, mDB.KEY_CHANNEL, mDB.KEY_PATH, mDB.KEY_DBLINK};
        String   table   = mDB.channelS_TABLE;
       
        Cursor c = mDB.getHandle().query(table, columns, null, null, null, null, null);

        startManagingCursor(c);
       
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
                R.layout.channelview,
                c,
                new String[] {mDB.KEY_POSTER, mDB.KEY_CHANNEL, mDB.KEY_DBLINK},
                new int[] {R.id.poster, R.id.channel, R.id.douban});
       
        adapter.setViewBinder(new ChannelViewBinder());

        channellist.setAdapter(adapter);
       
        about.setOnClickListener(new Button.OnClickListener()
        {

        public void onClick(View v)
        {
          // TODO Auto-generated method stub
           Intent mainIntent = new Intent(HDtvs.this,About.class);
            HDtvs.this.startActivity(mainIntent);
            HDtvs.this.finish();

               }
       
        });
       
        likebutton.setOnClickListener(new Button.OnClickListener()
        {

        public void onClick(View v)
        {
          // TODO Auto-generated method stub
           Intent mainIntent = new Intent(HDtvs.this,Renrenframe.class);
            HDtvs.this.startActivity(mainIntent);
            HDtvs.this.finish();

               }
       
        });
    }

   
   
    protected static final int MENU_UPDATE = Menu.FIRST;
    protected static final int MENU_HOST = Menu.FIRST+1;

   
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // TODO Auto-generated method stub
      menu.add(0, MENU_UPDATE, 0, "查看美剧更新").setIcon(android.R.drawable.ic_menu_add);
      menu.add(0, MENU_HOST, 0, "进入程序主页").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
      return super.onCreateOptionsMenu(menu);
   }

   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      // TODO Auto-generated method stub
      switch(item.getItemId()) {
           case MENU_UPDATE:
                  String UpdateURL = getResources().getString(R.string.allupdateURL);
                  Uri uri = Uri.parse(UpdateURL);
                  Intent intent2 = new Intent(Intent.ACTION_VIEW,uri);
                  startActivity(intent2);
           case MENU_HOST:
                String HostURL = getResources().getString(R.string.hostURL);
                Uri uri2 = Uri.parse(HostURL);
                Intent intent3 = new Intent(Intent.ACTION_VIEW,uri2);
                startActivity(intent3);
      }
      return super.onOptionsItemSelected(item);
   }

   
    @Override
   protected void onListItemClick(ListView l, View v, int position, long id) {
       super.onListItemClick(l, v, position, id);
       Intent intent = new Intent();
        intent.setClass(HDtvs.this,Showlist.class);
       
        /* new一个Bundle对象,并将要传递的数据传入 */
        Bundle bunde = new Bundle();
        bunde.putString("path",mDB.KEY_PATH);
        bunde.putString("cname",mDB.KEY_CHANNEL);
        bunde.putString("dblink",mDB.KEY_DBLINK);
        /* 将Bundle对象assign给Intent */
        intent.putExtras(bunde);
       
        startActivity(intent);
       
       
   }



   @Override
   public void onCreateContextMenu(ContextMenu menu, View v,
         ContextMenuInfo menuInfo) {
      // TODO Auto-generated method stub
      menu.add(0, MENU_UPDATE, 0, "查看美剧更新").setIcon(android.R.drawable.ic_menu_add);
      menu.add(0, MENU_HOST, 0, "进入程序主页").setIcon(android.R.drawable.ic_menu_close_clear_cancel);
        menu.setHeaderTitle("您想要做些什么?");
      super.onCreateContextMenu(menu, v, menuInfo);
   }
   
   

}



Showlist.java


Code: Select all
package com.appkon.hdtvs;

import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import javax.xml.parsers.*;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;


public class Showlist extends ListActivity
{
  /* 变量声明 */
  private TextView ChannelName;
  private List<Episode> li=new ArrayList<Episode>();
  private ImageButton back;
  private ImageButton likebutton;
 
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    /* 设定layout为newslist.xml */
    setContentView(R.layout.showlist);   
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
    ChannelName=(TextView) findViewById(R.id.cname);
    back=(ImageButton) findViewById (R.id.backbutton);
    likebutton=(ImageButton) findViewById(R.id.likebutton);
   
    Intent intent=this.getIntent();
    Bundle bunde = intent.getExtras();
    /* 取得Bundle对象中的数据 */
    String path = bunde.getString("path");
    String title = bunde.getString("cname");
    String dblink = bunde.getString("dblink");
    /* 调用getRss()取得解析后的List */
    li=getRss(path);
    ChannelName.setText(title);
    /* 设定自定义的MyAdapter */
    setListAdapter(new MyAdapter(this,li, bunde));
   
    likebutton.setOnClickListener(new Button.OnClickListener()
    {

    public void onClick(View v)
    {
      // TODO Auto-generated method stub
       Intent mainIntent = new Intent(Showlist.this,Renrenframe.class);
        Showlist.this.startActivity(mainIntent);
        Showlist.this.finish();

           }
   
    });
  }
 
  /* 设定ListItem被按下时要做的动作 */
  @Override
  protected void onListItemClick(ListView l,View v,int position,
                                 long id)
  {

    Episode ed=(Episode)li.get(position);
    /* new一个Intent对象,并指定class */
    Intent intent = new Intent();
    intent.setClass(Showlist.this,Tvs.class);
    /* new一个Bundle对象,并将要传递的数据传入 */
    Bundle bundle = new Bundle();
    bundle.putString("title",ed.getepisode());
    bundle.putString("desc",ed.getdesc());
    bundle.putString("link",ed.getLink());
    bundle.putString("dblink",ed.getdoubanlink());
    bundle.putString("pubdate",ed.getpubdate());
    /* 将Bundle对象assign给Intent */
    intent.putExtras(bundle);

    startActivity(intent);
  }
 
  /* 剖析XML的method */
  private List<Episode> getRss(String path)
  {
    List<Episode> data=new ArrayList<Episode>();
    URL url = null;     
    try
    { 
      url = new URL(path);
      /* 产生SAXParser对象 */
      SAXParserFactory spf = SAXParserFactory.newInstance();
      SAXParser sp = spf.newSAXParser();
      /* 产生XMLReader对象 */
      XMLReader xr = sp.getXMLReader();
      /* 设定自定义的MyHandler给XMLReader */
      MyHandler myExampleHandler = new MyHandler();
      xr.setContentHandler(myExampleHandler);     
      /* 解析XML */
      xr.parse(new InputSource(url.openStream()));
      /* 取得RSS标题与内容列表 */
      data =myExampleHandler.getParsedData();
    }
    catch (Exception e)
    {
     
    }
    return data;
  }
}



Tvs.java

Code: Select all
package com.appkon.hdtvs;

/* import相关class */

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;

public class Tvs extends Activity
{
  /* 变量声明 */
  private TextView episodeName;
  private ImageButton likebutton;
  private ImageButton backbutton;
  private WebView showframe;
  private String eName;
  private String eLink;
  private String eDBlink;
  private String ePubdate;
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    /* 设定layout为newscontent.xml */
    setContentView(R.layout.tvscreen);
    /* 初始化对象 */
    episodeName=(TextView) findViewById(R.id.episode);
    likebutton=(ImageButton) findViewById(R.id.likebutton);
    showframe=(WebView) findViewById(R.id.showframe);
    showframe.getSettings().setJavaScriptEnabled(true);
    backbutton=(ImageButton) findViewById(R.id.backbutton);
    /* 取得Intent中的Bundle对象 */
    Intent intent=this.getIntent();
    Bundle bunde = intent.getExtras();
   
    eName = bunde.getString("title");
    eLink = bunde.getString("link");
    eDBlink = bunde.getString("dblink");
    ePubdate = bunde.getString("pubdate");
    episodeName.setText(eName);
    showframe.setWebViewClient(new WebViewClient(){ 
        public boolean shouldOverrideUrlLoading(WebView view, String url) { 
            view.loadUrl(eLink); 
            return true; 
        } 
});
   
    backbutton.setOnClickListener(new View.OnClickListener()
    {
      public void onClick(View v)
      {
        Intent intent = new Intent();
        intent.setClass(Tvs.this, Showlist.class);
        startActivity(intent);
        Tvs.this.finish();

         
      }
    });
   
    likebutton.setOnClickListener(new Button.OnClickListener()
    {

    public void onClick(View v)
    {
      // TODO Auto-generated method stub
       Intent mainIntent = new Intent(Tvs.this,Renrenframe.class);
       Tvs.this.startActivity(mainIntent);
       Tvs.this.finish();

           }
   
    });
   
  }
   
  public void onFinish() {
     showframe.clearCache(true);
  }
 
  protected static final int MENU_UPDATE = Menu.FIRST;
  protected static final int MENU_DOUBAN = Menu.FIRST+1;
 
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // TODO Auto-generated method stub
      menu.add(0, MENU_UPDATE, 0, "查看更新预告").setIcon(android.R.drawable.ic_menu_add);
      menu.add(0, MENU_DOUBAN, 0, "查看豆瓣影评").setIcon(android.R.drawable.ic_menu_compass);
      return super.onCreateOptionsMenu(menu);
   }

   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      // TODO Auto-generated method stub

       final String allupdate = this.getResources().getString(R.string.allupdateURL); 
      
      switch(item.getItemId()) {
         case MENU_UPDATE:
            if (ePubdate != null ){
               AlertDialog.Builder builder =
                        new AlertDialog.Builder(Tvs.this);
                   
                    builder.setTitle("更新预告")
                           .setMessage("下一集的更新时间是" + ePubdate)
                           .setCancelable(false)
                           .setPositiveButton("好的",
                                  new DialogInterface.OnClickListener() {
                              public void onClick(DialogInterface dialog,
                                                int id) {
                               dialog.dismiss();
                                 
                              }
                           })
                         
                           .setNegativeButton("查看所有美剧更新时间",
                                  new DialogInterface.OnClickListener() {
                              public void onClick(DialogInterface dialog,
                                                int id) {
                               showframe.setWebViewClient(new WebViewClient(){ 
                                  public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                                      view.loadUrl(allupdate); 
                                      return true; 
                                  } 
                          });
                              }
                           });
                   
                    AlertDialog alert = builder.create();
                   
                    alert.show();
            } else {
            AlertDialog.Builder builder =
            new AlertDialog.Builder(Tvs.this);
       
        builder.setMessage("该美剧的这一季已经完结")
               .setTitle("已经完结")
               .setCancelable(false)
               
               .setPositiveButton("好的",
                         new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog,
                                       int id) {
                      dialog.dismiss();
                        
                     }
                  })
                
                  .setNegativeButton("查看所有美剧更新时间",
                         new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog,
                                       int id) {
                      showframe.setWebViewClient(new WebViewClient(){ 
                         public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                             view.loadUrl(allupdate); 
                             return true; 
                         } 
                 });
                     }
                  });
          
           AlertDialog alert = builder.create();
          
           alert.show();
            }
      
         case MENU_DOUBAN:
            
            showframe.setWebViewClient(new WebViewClient(){ 
                 public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                     view.loadUrl(eDBlink); 
                     return true; 
                 } 
         });
      }
   
      return super.onOptionsItemSelected(item);
   }
}

   
   
   





MyHandler.java

Code: Select all
package com.appkon.hdtvs;

import java.util.ArrayList;
import java.util.List;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class MyHandler extends DefaultHandler
{
  /* 变量声明 */
  private boolean in_episode = false;
  private boolean in_name = false;
  private boolean in_link = false;
  private boolean in_desc = false;
  private boolean in_pubdate = false;
  private List<Episode> li;
  private Episode episodes;
  private String eName="";
  private StringBuffer buf=new StringBuffer();

  /* 将转换成List<News>的XML数据回传 */
  public List<Episode> getParsedData()
  {
    return li;
  }
  /* 将解析出的RSS title回传 */
  public String getEpisodeName()
  {
    return eName;
  }
  /* XML文件开始解析时调用此method */
  @Override
  public void startDocument() throws SAXException
  {
    li = new ArrayList<Episode>();
  }
  /* XML文件结束解析时调用此method */
  @Override
  public void endDocument() throws SAXException
  {
  }
  /* 解析到Element的开头时调用此method */
  @Override
  public void startElement(String namespaceURI, String localName,
               String qName, Attributes atts) throws SAXException
  {
    if (localName.equals("episode"))
    {
      this.in_episode = true;
      /* 解析到item的开头时new一个News对象 */
      episodes=new Episode();
    }
    else if (localName.equals("name"))
    {
      if(this.in_episode)
      {
        this.in_name = true;
      }
    }
    else if (localName.equals("link"))
    {
      if(this.in_episode)
      {
        this.in_link = true;
      }
    }
    else if (localName.equals("desc"))
    {
      if(this.in_episode)
      {
        this.in_desc = true;
      }
    }
    else if (localName.equals("pubDate"))
    {
      if(this.in_episode)
      {
        this.in_pubdate = true;
      }
    }
  }
  /* 解析到Element的结尾时调用此method */
  @Override
  public void endElement(String namespaceURI, String localName,
                         String qName) throws SAXException
  {
    if (localName.equals("episode"))
    {
      this.in_episode = false;
      /* 解析到item的结尾时将News对象写入List中 */
      li.add(episodes);
    }
    else if (localName.equals("name"))
    {
      if(this.in_episode)
      {
        /* 设定News对象的title */
        episodes.setepisode(buf.toString().trim());
        buf.setLength(0);
        this.in_name = false;
      }
      else
      {

      }
    }
    else if (localName.equals("link"))
    {
      if(this.in_episode)
      {
        /* 设定News对象的link */
        episodes.setLink(buf.toString().trim());
        buf.setLength(0);
        this.in_link = false;
      }
    }
    else if (localName.equals("description"))
    {
      if(in_episode)
      {
        /* 设定News对象的description */
        episodes.setDesc(buf.toString().trim());
        buf.setLength(0);
        this.in_desc = false;
      }
    }
    else if (localName.equals("pubDate"))
    {
      if(in_episode)
      {
        /* 设定News对象的pubDate */
        episodes.setpubdate(buf.toString().trim());
        buf.setLength(0);
        this.in_pubdate = false;
      }
    }
  }

}



MyAdapter.java

Code: Select all
package com.appkon.hdtvs;

/* import相关class */
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.TextView;

/* 自定义的Adapter,继承android.widget.BaseAdapter */
public class MyAdapter extends BaseAdapter {

   
    private LayoutInflater mInflater;
    private List<Episode> items;
    private Context mContext = null;
    private String dblink;
   
   
    public MyAdapter(Context context,List<Episode> it, Bundle bundle2)
    {
      /* 参数初始化 */
      mInflater = LayoutInflater.from(context);
      items = it;
     dblink = bundle2.getString("");
             
    }
   
    /* 因继承BaseAdapter,需重写以下method */
    public int getCount()
    {
      return items.size();
    }

    public Object getItem(int position)
    {
      return items.get(position);
    }
   
    public long getItemId(int position)
    {
      return position;
    }
   
    public View getView(int position,View convertView,ViewGroup par)
    {
      buttonViewHolder holder;
     
      if(convertView == null)
      {
         convertView = mInflater.inflate(R.layout.episode, null);
          holder = new buttonViewHolder();
          holder.episode = (TextView)convertView.findViewById(R.id.episode);
          holder.buttondb = (ImageButton)convertView.findViewById(R.id.douban);
          convertView.setTag(holder);
      }
      else
      {
        holder = (buttonViewHolder) convertView.getTag();
      }
      Episode tmpN=(Episode)items.get(position);
      holder.episode.setText(tmpN.getepisode());
      holder.buttondb.setOnClickListener(new View.OnClickListener()
        {
          public void onClick(View v){
       
             Intent intent=new Intent(mContext,Doubanframe.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             Bundle bundle = new Bundle();
             bundle.putString("dblink", dblink);
             mContext.startActivity(intent);

          }

        });
      return convertView;
    }
     
   
    /* class ViewHolder */
    private class buttonViewHolder {
        TextView episode;
        ImageButton buttondb;
    }
 


 

}

 


Episode.java

Code: Select all
package com.appkon.hdtvs;

public class Episode {
     /* News的四个变数 */
     private String _episode="";
     private String _link="";
     private String _doubanlink="";
     private String _pubdate="";
     private String _desc="";
    
     public String getepisode()
     {
       return _episode;
     }
     public String getLink()
     {
       return _link;
     }
     public String getdoubanlink()
     {
       return _doubanlink;
     }
     public String getpubdate()
     {
       return _pubdate;
     }
     public String getdesc()
     {
        return _desc;
     }
     public void setepisode(String episode)
     {
       _episode=episode;
     }
     public void setLink(String link)
     {
       _link=link;
     }
     public void setdoubanlink(String doubanlink)
     {
       _doubanlink=doubanlink;
     }
     public void setpubdate(String pubdate)
     {
       _pubdate=pubdate;
     }
   public void setDesc(String desc) {
      // TODO Auto-generated method stub
      _desc=desc;
   }
   }



Aboutframe.java


Code: Select all
package com.appkon.hdtvs;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageButton;
import android.widget.TextView;

public class Aboutframe extends Activity{
   
     private TextView namebar;
     private ImageButton likebutton;
     private ImageButton backbutton;
     private WebView aboutframe;
     private String lpath ;
     private String lname ;
     private String fqpath;
     private String fqname;
      private String frpath;
      private String frname;
      private String rpath;
      private String rname;
      private String fdname;
      private String fdpath;


      @Override   
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.aboutframe);
          this.requestWindowFeature(Window.FEATURE_NO_TITLE);//remove title bar
         
          likebutton =(ImageButton)findViewById(R.id.likebutton);
          aboutframe =(WebView)findViewById(R.id.aboutframe);
         
          Intent intent=this.getIntent();
          Bundle bunde = intent.getExtras();
         
          lname = bunde.getString("lname");
          lpath = bunde.getString("lpath");
          fqname = bunde.getString("fqname");
          fqpath = bunde.getString("fqpath");
          frname = bunde.getString("frname");
          frpath = bunde.getString("frpath");
          rname = bunde.getString("rname");
          rpath = bunde.getString("rpath");
          fdname = bunde.getString("fdname");
          fdpath = bunde.getString("fdpath");
         
          if(lname != null&lpath!= null){
             namebar.setText(lname);
             aboutframe.setWebViewClient(new WebViewClient(){ 
                  public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                      view.loadUrl(lpath); 
                      return true;
                  }
                  }); 
          }
          if(fqname != null&fqpath!= null){
             namebar.setText(fqname);
             aboutframe.setWebViewClient(new WebViewClient(){ 
                  public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                      view.loadUrl(fqpath); 
                      return true;
                  }
                  }); 
          }
          if(frname != null&frpath!= null){
             namebar.setText(frname);
             aboutframe.setWebViewClient(new WebViewClient(){ 
                  public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                      view.loadUrl(frpath); 
                      return true;
                  }
                  }); 
          }
          if(rname != null&rpath!= null){
             namebar.setText(rname);
             aboutframe.setWebViewClient(new WebViewClient(){ 
                  public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                      view.loadUrl(rpath); 
                      return true;
                  }
                  }); 
          }
          if(fdname != null&fdpath!= null){
             namebar.setText(fdname);
             aboutframe.setWebViewClient(new WebViewClient(){ 
                  public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                      view.loadUrl(fdpath); 
                      return true;
                  }
                  }); 
            
             backbutton.setOnClickListener(new View.OnClickListener()
              {
                public void onClick(View v)
                {
                  Intent intent = new Intent();
                  intent.setClass(Aboutframe.this, About.class);
                  startActivity(intent);
                  Aboutframe.this.finish();
                   
                }
              });
             
              likebutton.setOnClickListener(new View.OnClickListener()
              {
                public void onClick(View v)
                {
                  Intent intent = new Intent();
                  intent.setClass(Aboutframe.this, Renrenframe.class);
                  startActivity(intent);
                  Aboutframe.this.finish();
                   
                }
              });
          }
         

   
}
}
     

     




Doubanframe.java

Code: Select all
package com.appkon.hdtvs;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;

public class Doubanframe extends Activity{
   /* 变量声明 */
     private TextView title;
     private ImageButton likebutton;
     private ImageButton backbutton;
     private WebView dbframe;
     private String eDBlink;
     private String ePubdate;
    
     @Override
     public void onCreate(Bundle savedInstanceState)
     {
       super.onCreate(savedInstanceState);
       /* 设定layout为newscontent.xml */
       setContentView(R.layout.dbframe);
       /* 初始化对象 */
       title=(TextView) findViewById(R.id.title);
       likebutton=(ImageButton) findViewById(R.id.likebutton);
       dbframe=(WebView) findViewById(R.id.dbframe);
       dbframe.getSettings().setJavaScriptEnabled(true);
       backbutton=(ImageButton) findViewById(R.id.backbutton);
       /* 取得Intent中的Bundle对象 */
       Intent intent=this.getIntent();
       Bundle bunde = intent.getExtras();

       eDBlink = bunde.getString("dblink");
       ePubdate = bunde.getString("pubdate");

       dbframe.setWebViewClient(new WebViewClient(){ 
           public boolean shouldOverrideUrlLoading(WebView view, String url) { 
               view.loadUrl(eDBlink); 
               return true; 
           } 
   });
      
       backbutton.setOnClickListener(new View.OnClickListener()
       {
         public void onClick(View v)
         {
           Intent intent = new Intent();
           intent.setClass(Doubanframe.this, Showlist.class);
           startActivity(intent);
           Doubanframe.this.finish();

            
         }
       });
      
        likebutton.setOnClickListener(new Button.OnClickListener()
        {

        public void onClick(View v)
        {
          // TODO Auto-generated method stub
           Intent mainIntent = new Intent(Doubanframe.this,Renrenframe.class);
            Doubanframe.this.startActivity(mainIntent);
            Doubanframe.this.finish();

               }
       
        });
      
     }
      
     public void onFinish() {
        dbframe.clearCache(true);
     }
}



ChannelViewBinder.java


Code: Select all
package com.appkon.hdtvs;

import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.SimpleCursorAdapter;

public class ChannelViewBinder implements SimpleCursorAdapter.ViewBinder {
        public boolean setViewValue(View view, final Cursor cursor, int columnIndex) {
            final Context mContext = null;
                if(view instanceof ImageView) {
                        ImageView iv = (ImageView) view;
                        byte[] img = cursor.getBlob(columnIndex);
                        iv.setImageBitmap(BitmapFactory.decodeByteArray(img, 0, img.length));
                        return true;
                }

                if(view instanceof ImageButton) {
                        ImageButton ib = (ImageButton) view;
                        ib.setOnClickListener(new  View.OnClickListener() {     
                            @Override
                            public void onClick(View v) {
                               String dblink = cursor.getString(cursor.getColumnIndex(ChannelDB.KEY_DBLINK));
                               Intent intent = new Intent();
                                intent.setClass(mContext, Doubanframe.class);
                                Bundle bundle = new Bundle();
                                bundle.putString("dblink",dblink);
                                intent.putExtras(bundle);
                                }
                            });

                }
                return false;
        }
}
       



ChannelPoster.java

Code: Select all
package com.appkon.hdtvs;

import android.graphics.Bitmap;

public class ChannelPoster {
    private Bitmap poster;
    private String channel;
    private String path;
    private String dblink;

    public ChannelPoster(Bitmap pi, String c, String p, String d) {
        poster = pi;
        channel = c;
        path = p;
        dblink = d;
    }
   
    public Bitmap getPoster() { return poster; }
    public String getChannel() { return channel; }
    public String getPath() { return path; }
    public String getDBlink() { return dblink; }
}


ChannelDB.java

Code: Select all
package com.appkon.hdtvs;


import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.graphics.Bitmap;
import java.io.ByteArrayOutputStream;
import android.provider.BaseColumns;

public class ChannelDB {
    public static final String KEY_ID = BaseColumns._ID;
    public static final String KEY_CHANNEL = "channel";
    public static final String KEY_DBLINK = "dblink";
    public static final String KEY_PATH = "path";
    public static final String KEY_POSTER = "poster";
   
    private DatabaseHelper mDbHelper;
    private static SQLiteDatabase mDb;
   
    private static final String DATABASE_NAME = "channelDB";
    private static final int DATABASE_VERSION = 1;
   
    public static final String channelS_TABLE = "channels";

    private static final String CREATE_channelS_TABLE = "create table "+channelS_TABLE+" ("
                                         +KEY_ID+" integer primary key autoincrement, "
                                         +KEY_POSTER+" blob not null, "
                                         +KEY_CHANNEL+" text not null unique, "
                                         +KEY_DBLINK+" integer not null, "
                                         +KEY_PATH+" integer not null);";
                                             
    private final Context mCtx;
    private boolean opened = false;
   

    public static class DatabaseHelper extends SQLiteOpenHelper {
        DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }
   
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(CREATE_channelS_TABLE);
        }
   
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("DROP TABLE IF EXISTS "+channelS_TABLE);
            onCreate(db);
        }
    }
   
    public void Reset() {
        openDB();
        mDbHelper.onUpgrade(this.mDb, 1, 1);
        closeDB();
    }
   
    public ChannelDB(Context ctx) {
        mCtx = ctx;
        mDbHelper = new DatabaseHelper(mCtx);
    }
   
    private SQLiteDatabase openDB() {
        if(!opened)
            mDb = mDbHelper.getWritableDatabase();
        opened = true;
        return mDb;
    }
   
    public SQLiteDatabase getHandle() { return openDB(); }
   
    private void closeDB() {
        if(opened)
            mDbHelper.close();
        opened = false;
    }

    public void createchannelEntry(ChannelPoster channel) {
        openDB();
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        channel.getPoster().compress(Bitmap.CompressFormat.PNG, 100, out);
        ContentValues cv = new ContentValues();
        cv.put(KEY_POSTER, out.toByteArray());           
        cv.put(KEY_CHANNEL, channel.getChannel());
        cv.put(KEY_DBLINK, channel.getDBlink());
        cv.put(KEY_PATH, channel.getPath());
        mDb.insert(channelS_TABLE, null, cv);
        closeDB();
    }
   
    public static Cursor getall() {
        return mDb.query(channelS_TABLE,
            new String[] {KEY_ID, KEY_CHANNEL, KEY_DBLINK,KEY_PATH},
            null, null, null, null, null);
    }
    public static Cursor check() {
        return mDb.rawQuery("SELECT * FROM channels", null);
           
    }
}


About.java

Code: Select all
package com.appkon.hdtvs;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;

public class About extends Activity{
   
   private ImageButton backbutton;
   private ImageButton likebutton;
   private ImageView versionlogo;
   private ImageButton faq;
   private ImageButton forum;
   private ImageButton feedback;
   private ImageButton rate;
   private String likepath ;
   private String likename = "人人分享";
   private String lpath="" ;
   private String lname="" ;
   private String faqpath ;
   private String faqname ="常见问题";
   private String forumpath ;
   private String forumname = "APP论坛";
   private String fqpath="";
   private String fqname="";
   private String frpath="";
   private String frname="";
   private String ratepath;
   private String ratename="评价";
   private String rpath="";
   private String rname="";
   private String feedbackpath;
   private String feedbackname="反馈问题";
   private String fdname="";
   private String fdpath="";
   
    @Override   
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);//remove title bar
       
        likebutton =(ImageButton)findViewById(R.id.likebutton);
        backbutton =(ImageButton)findViewById(R.id.backbutton);
        faq =(ImageButton)findViewById(R.id.faqbutton);
        forum =(ImageButton)findViewById(R.id.forumbutton);
        feedback =(ImageButton)findViewById(R.id.feedbackbutton);
        rate =(ImageButton)findViewById(R.id.ratebutton);
       
        backbutton.setOnClickListener(new View.OnClickListener()
        {
          public void onClick(View v)
          {
            Intent intent = new Intent();
            intent.setClass(About.this, Showlist.class);
            startActivity(intent);
            About.this.finish();
             
          }
        });
       
        likebutton.setOnClickListener(new View.OnClickListener()
        {
          public void onClick(View v)
          {
            Intent intent = new Intent();
            intent.setClass(About.this, Renrenframe.class);
            startActivity(intent);
            About.this.finish();
             
          }
        });
       
        faq.setOnClickListener(new View.OnClickListener()
        {
          public void onClick(View v)
          {
            Intent intent = new Intent();
            intent.setClass(About.this, Aboutframe.class);
            Bundle bundle = new Bundle();
            bundle.putString("faqpath",fqpath);
            bundle.putString("faqname",fqname);
            intent.putExtras(bundle);
            startActivity(intent);
            About.this.finish();
             
          }
        });
       
        feedback.setOnClickListener(new View.OnClickListener()
        {
          public void onClick(View v)
          {
            Intent intent = new Intent();
            intent.setClass(About.this, Aboutframe.class);
            Bundle bundle = new Bundle();
            bundle.putString("feedbackpath",fdpath);
            bundle.putString("feeddackname",fdname);
            intent.putExtras(bundle);
            startActivity(intent);
            About.this.finish();
             
          }
        });
       
        rate.setOnClickListener(new View.OnClickListener()
        {
          public void onClick(View v)
          {
            Intent intent = new Intent();
            intent.setClass(About.this, Aboutframe.class);
            Bundle bundle = new Bundle();
            bundle.putString("ratepath",rpath);
            bundle.putString("ratename",rname);
            intent.putExtras(bundle);
            startActivity(intent);
            About.this.finish();
             
          }
        });
       
        forum.setOnClickListener(new View.OnClickListener()
        {
          public void onClick(View v)
          {
            Intent intent = new Intent();
            intent.setClass(About.this, Aboutframe.class);
            Bundle bundle = new Bundle();
            bundle.putString("forumpath",frpath);
            bundle.putString("forumname",frname);
            intent.putExtras(bundle);
            startActivity(intent);
            About.this.finish();
             
          }
        });
       
        }
}



Aboutframe.java

Code: Select all
package com.appkon.hdtvs;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageButton;
import android.widget.TextView;

public class Aboutframe extends Activity{
   
     private TextView namebar;
     private ImageButton likebutton;
     private ImageButton backbutton;
     private WebView aboutframe;
     private String lpath ;
     private String lname ;
     private String fqpath;
     private String fqname;
      private String frpath;
      private String frname;
      private String rpath;
      private String rname;
      private String fdname;
      private String fdpath;


      @Override   
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.aboutframe);
          this.requestWindowFeature(Window.FEATURE_NO_TITLE);//remove title bar
         
          likebutton =(ImageButton)findViewById(R.id.likebutton);
          aboutframe =(WebView)findViewById(R.id.aboutframe);
         
          Intent intent=this.getIntent();
          Bundle bunde = intent.getExtras();
         
          lname = bunde.getString("lname");
          lpath = bunde.getString("lpath");
          fqname = bunde.getString("fqname");
          fqpath = bunde.getString("fqpath");
          frname = bunde.getString("frname");
          frpath = bunde.getString("frpath");
          rname = bunde.getString("rname");
          rpath = bunde.getString("rpath");
          fdname = bunde.getString("fdname");
          fdpath = bunde.getString("fdpath");
         
          if(lname != null&lpath!= null){
             namebar.setText(lname);
             aboutframe.setWebViewClient(new WebViewClient(){ 
                  public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                      view.loadUrl(lpath); 
                      return true;
                  }
                  }); 
          }
          if(fqname != null&fqpath!= null){
             namebar.setText(fqname);
             aboutframe.setWebViewClient(new WebViewClient(){ 
                  public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                      view.loadUrl(fqpath); 
                      return true;
                  }
                  }); 
          }
          if(frname != null&frpath!= null){
             namebar.setText(frname);
             aboutframe.setWebViewClient(new WebViewClient(){ 
                  public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                      view.loadUrl(frpath); 
                      return true;
                  }
                  }); 
          }
          if(rname != null&rpath!= null){
             namebar.setText(rname);
             aboutframe.setWebViewClient(new WebViewClient(){ 
                  public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                      view.loadUrl(rpath); 
                      return true;
                  }
                  }); 
          }
          if(fdname != null&fdpath!= null){
             namebar.setText(fdname);
             aboutframe.setWebViewClient(new WebViewClient(){ 
                  public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                      view.loadUrl(fdpath); 
                      return true;
                  }
                  }); 
            
             backbutton.setOnClickListener(new View.OnClickListener()
              {
                public void onClick(View v)
                {
                  Intent intent = new Intent();
                  intent.setClass(Aboutframe.this, About.class);
                  startActivity(intent);
                  Aboutframe.this.finish();
                   
                }
              });
             
              likebutton.setOnClickListener(new View.OnClickListener()
              {
                public void onClick(View v)
                {
                  Intent intent = new Intent();
                  intent.setClass(Aboutframe.this, Renrenframe.class);
                  startActivity(intent);
                  Aboutframe.this.finish();
                   
                }
              });
          }
         

   
}
}
     

     


Renrenframe.java

Code: Select all
package com.appkon.hdtvs;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageButton;

public class Renrenframe extends Activity{
     private ImageButton backbutton;
     private WebView rrframe;
     private String rrlink = "http://widget.renren.com/dialog/feed?app_id=126453&action_name=%E8%AE%BF%E9%97%AE&action_link=http%3a%2f%2fappkon.com%2fhdtvs%2f&redirect_uri=http%3a%2f%2fappkon.com%2fhdtvs%2f&url=http%3a%2f%2fappkon.com%2fhdtvs%2f&name=我在用高清美剧(Android版)观看美剧&caption=高清美剧是共青团百万青年创业大赛的参赛作品,快下载投票吧&description=高清美剧时刻更新关注最新最热的时尚美剧,让你过瘾看不停。&image=http://appkon.com/hdtvs/renrenshare.png"
;

    
     @Override
     public void onCreate(Bundle savedInstanceState)
     {
       super.onCreate(savedInstanceState);
       /* 设定layout为newscontent.xml */
       setContentView(R.layout.renren);
       rrframe=(WebView) findViewById(R.id.rrframe);
       rrframe.getSettings().setJavaScriptEnabled(true);
       backbutton=(ImageButton) findViewById(R.id.backbutton);
       /* 取得Intent中的Bundle对象 */
       Intent intent=this.getIntent();
       Bundle bunde = intent.getExtras();

       rrframe.setWebViewClient(new WebViewClient(){ 
           public boolean shouldOverrideUrlLoading(WebView view, String url) { 
               view.loadUrl(rrlink); 
               return true; 
           } 
   });
      
       backbutton.setOnClickListener(new View.OnClickListener()
       {
         public void onClick(View v)
         {
           Intent intent = new Intent();
           intent.setClass(Renrenframe.this, Showlist.class);
           startActivity(intent);
           Renrenframe.this.finish();

            
         }
       });
      
     }
      
     public void onFinish() {
        rrframe.clearCache(true);
     }

}



AndroidManifest.xml

Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.appkon.hdtvs"
      android:versionCode="1"
      android:versionName="1.0"
      android:theme="@android:style/Theme.NoTitleBar">
    <uses-sdk android:minSdkVersion="7" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Splash"
                  android:label="@string/app_name"
                  android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
         <activity android:name=".About"
         android:screenOrientation="portrait" ></activity>
         <activity android:name=".Aboutframe"
         android:screenOrientation="portrait" ></activity>
         <activity android:name=".Doubanframe"
         android:screenOrientation="portrait" ></activity>
         <activity android:name=".HDtvs"
         android:screenOrientation="portrait" ></activity>
         <activity android:name=".Renrenframe"
         android:screenOrientation="portrait" ></activity>
         <activity android:name=".Showlist"
         android:screenOrientation="portrait" ></activity>
         <activity android:name=".Tvs"
         android:screenOrientation="portrait" ></activity>
    </application>
   
      <uses-permission android:name="android.permission.INTERNET"/>
</manifest>
oratis
Freshman
Freshman
 
Posts: 5
Joined: Sat Nov 19, 2011 2:41 am

Top

Return to SDK/ADT/Emulator Problems

Who is online

Users browsing this forum: No registered users and 2 guests