2011-09-15 2 views
0

私はhtmlから検索するアイテムのリストを持っています。ウィジェットでtextviewsを表示して次のボタンを表示する方法は?

すべてのタイトルです。

何私がやっていることは、特定のもののために、各タイトルをテストします。..

それはそれを持っている場合、私は、ウィジェット内のTextViewに追加します。

唯一の問題は、1つ以上のアイテムである場合、ウィジェットはすべてのアイテムを保持しないことです。

3.0より古いウィジェットではlistviewレイアウトがサポートされていません。

どのように各アイテムをTextViewに追加し、次のボタンを使用して各アイテムを表示して次のテキストビューを表示できますか?

編集:

これは意味が分かります。 ここで私のタイトルを取得する方法...

ArrayListに設定し、テキストビューをクリックしたときにリスト内の次の項目を表示することをお勧めしますか?

while(doc == null && retry < 5){ 
          retry++; 
          try { 
          doc = Jsoup.connect(site).get(); 
         } catch (IOException e) { 
          Log.e("Html", "JSoup get retrieved no document", e); 
         } 


          } 

         if(doc != null){ 

          title = doc.select("tr> td.indexList1, tr > td.indexList2"); 
          if(title != null){ 
           // Iterator over those elements  
          ListIterator<Element> postIt = title.listIterator(); 


          //Loads all the items until there is no .hasNExt() 
          while (postIt.hasNext()) {  



            // Add the game text to the ArrayList  
            Element name = postIt.next(); 
            nameString = name.text(); 


            list.add(new Release(nameString)); 

は、どのように私は当初のTextViewを設定するためにこれを使用することになり、その後、(あなたが示唆したコードで)、リスト内の次の項目は、テキストビューにロードすることを可能にしますか?

+0

"リストビューのレイアウトは、3.0より古いウィジェットではサポートされていません。今何? – njzk2

+0

どういう意味ですか? "今何? –

答えて

1

リストにタイトルを付ける(たとえば、ArrayListのようなJavaのリスト)、レイアウトに1つのテキストビューしか定義されていない。マニフェストで

例えばあなたwidgetprovider(レシーバ)への新しいインテントフィルタを追加します

<intent-filter> 
     <action android:name="WIDGET_NEXT_TITLE" /> 
    </intent-filter> 

をそして、あなたのウィジェットプロバイダクラスであなたのTextViewにonClickPendingIntentを追加します。

final RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);     
      final Intent nextTitleIntent = new Intent("WIDGET_NEXT_TITLE"); 
      nextTitleIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId); 
      final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, nextTitleIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
      views.setOnClickPendingIntent(R.id.textview_id, pendingIntent); 

することができますたとえば、あなたのonUpdateメソッドでそれを行います。 これですべてのクリックとインテントが実行され、必要なのはそれを捕まえてテキストビューの次のタイトルを設定するだけです。あなたのwidgetproviderオーバーライドメソッドonRecieveでこのように:

if ("WIDGET_NEXT_TITLE".equals(intent.getAction())) { 
     final int widgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); 
     if (widgetId != AppWidgetManager.INVALID_APPWIDGET_ID) { 
      // get the next title here and set the text in a textview through RemoteView 
     } 
    } else { 
     super.onReceive(context, intent); 
    } 

何かがそうです。もちろん、現在表示されているタイトルのトラックを維持する必要があるので、非常に簡略化されていますが、あなたがそのアイデアを得ることを願っています。

+0

私はアイデアが好きです。私の編集をチェックしてください。 –

関連する問題