2013-07-02 9 views
2

내 위젯에 TextView 및 EditView의 목록을 표시하려고합니다. Android AppWidget : 위젯 레이아웃에 맞춤보기 추가

나는 내 위젯의 LinearLayout에 반환있는 LinearLayout을 추가해야 할 텍스트 뷰와 EditView

public LinearLayout getMainBodyLayout(List<Item> data) { 
     LinearLayout mainLL = new LinearLayout(context); 
     mainLL.setOrientation(LinearLayout.VERTICAL); 
     for (int i = 0; i < data.size(); i++) { 
      Item ritem = data.get(i); 
      LinearLayout item = new LinearLayout(context); 
      TextView name = new TextView(context); 
      EditText nos = new EditText(context); 
      name.setText(ritem.getName()); 
      nos.setText(ritem.getNo()); 
      item.addView(name); 
      item.addView(nos); 
      mainLL.addView(item); 

     } 

     return mainLL; 
    } 

public void updateWidget(LinearLayout ll) { 
     AppWidgetManager manager = AppWidgetManager.getInstance(context); 
     ComponentName thisWidget = new ComponentName(context, MainWidget.class); 
     RemoteViews remoteViews = new RemoteViews(context.getPackageName(), 
       R.layout.widget_my); 
     remoteViews.setTextViewText(R.id.title, title); 

     remoteViews.setTextViewText(R.id.widget_error, errorMsg); 

// I ve to add ll to this remoteViews 


     manager.updateAppWidget(thisWidget, remoteViews); 
    } 

의 목록을 생성하려면 다음 코드를 사용했다. 이 작업을 수행하는 가장 좋은 방법을 제공해주십시오.

+1

목록을 만들고 싶습니까 ??? 그렇다면 왜 그 문제에 대해 listview를 사용하지 않습니까 ?? 그리고 listview는 현재하고있는 것보다 빠를 것입니다. – BBdev

+0

@BBdev, 나는 어댑터를 어떻게 설정해야할지 모르겠다. ... – Sridhar

+0

@BBdev ListView를 사용하여 수행하는 방법을 말해 줄 수 있겠습니까? – Sridhar

답변

0

시도는 내가주는 내 위젯

 private class ABC extends TimerTask { 
     RemoteViews remoteViews; 
     AppWidgetManager appWidgetManager; 
     ComponentName thisWidget; 

     public ABC(Context context, final AppWidgetManager appWidgetManager) { 
     this.appWidgetManager = appWidgetManager; 


     remoteViews = new RemoteViews(context.getPackageName(), R.layout.main); 
     thisWidget = new ComponentName(context, WidgetAnimate.class); 
      } 

     public void run() { 

      String k= XMLfunctions.data1(); 
      remoteViews.setTextViewText(R.id.tv12,k); 
      appWidgetManager.updateAppWidget(thisWidget, remoteViews); 

     } 
+0

사용자 정의보기를 추가하고 싶습니다. 하위 코드의 하드 코드를 사용할 수 없습니다 – Sridhar

0

에서 사용 HV으로이 방법을 시도 XML로 레이아웃을 자바 파일 ... 및 사용 방법

  RemoteViews.setTextviewText(id,string); 

의 값을 설정합니다 당신은 그것을위한 완전한 코드가 훨씬 더 커질 것입니다. 필요에 따라 최적화 할 수있는 코드 샘플을 제공하고 있습니다.

Android ListView example.

는 그리고이 하나

Android ListView Tutorial

시작하는 것도 좋은 튜토리얼입니다 그리고 당신은 당신의 목록을 최적화하려면이 자습서를 볼 수 있습니다.

ListView Tips & Tricks #3: Create Fancy ListViews

+0

감사하지만 AppWidgetProvider 클래스에서 어댑터를 설정하는 방법에 대해 질문했습니다. – Sridhar

+0

ListView를 사용하는 경우 어댑터를 listview에 직접 설정할 수 있습니다. 목록보기는 Android에서 제공하는 위젯으로, 목록보기에서 달성하려는 작업을 확인하는 것이 좋습니다. – BBdev

+0

좋습니다, listview.setAdapter (adapterObj); – Sridhar