2011-12-01 19 views
0

我做了一個listview與onitemclick方法,以提供從數據庫到其他活動的捆綁。列表視圖項onclick從數據庫提供捆綁

但其他活動沒有得到捆綁,因爲我預料,有人可以檢查我的代碼,並告訴爲什麼? THX

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; 

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

    channellist.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      c.moveToPosition(position); 
      Intent intent = new Intent(); 
      intent.setClass(HDtvs.this,Showlist.class); 
      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); 
     } 
    }); 

showlist.java

> public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    /* 設定layout爲newslist.xml */ 
    setContentView(R.layout.showlist); 
    ChannelName=(TextView) findViewById(R.id.cname); 
    back=(Button) findViewById(R.id.back); 
    likebutton=(Button) findViewById(R.id.share); 

    Intent intent=this.getIntent(); 
    Bundle bunde = intent.getExtras(); 

    /* 取得Bundle對象中的數據 */ 
    String path = bunde.getString("path"); 
    String title = bunde.getString("cname"); 
    String dblink = bunde.getString("dblink"); 

    Bundle bunde2= new Bundle(); 
    bunde2.putString("dblink",dblink); 
    /* 調用getRss()取得解析後的List */ 
    li=getRss(path); 
    ChannelName.setText(title); 
    /* 設定自定義的MyAdapter */ 
    setListAdapter(new MyAdapter(this,li, bunde2)); 
    ` 
+0

你可以添加你來自哪裏,在'Intent'藏漢retrive數據的代碼:?u能在這條線突破點? – kaspermoerch

+0

粘貼展示活動代碼 – Pratik

+1

如何定義MyAdapter?嘗試'Log.i(「showlist」,「dblink =」+ dblink)',看看這個值是否出現在'logcat'中。 – chiuki

回答

0

你可以嘗試這樣的:

Intent intent = new Intent(); 
intent.setClass(HDtvs.this,Showlist.class); 
intent .putExtras("path",mDB.KEY_PATH); 
intent .putExtras("cname",mDB.KEY_CHANNEL); 
intent .putExtras("dblink",mDB.KEY_DBLINK); 

,然後在第二類得到這個包是這樣的:

Bundle extras = getIntent().getExtras(); 
path= extras.getString("path"); 
+0

好吧,我試過了,但它不起作用,無論如何thx – oratis

+0

有任何錯誤或某些想法? –

+0

,沒有showlist活動只是沒有收到這些字符串 – oratis

0

你確定「putExtras」是對的嗎?

String path = bunde.getString("path"); 

也許你把一個空字符串轉化巴德爾