2012-02-21 7 views
0

Я многому учусь о геттерах и сеттерах, но, похоже, я не пробовал свой путь. У меня есть класс под названием Apps_Info, который содержит мои сеттеры и геттеры, и у меня есть моя основная деятельность FavouriteApps, которая имеет список, который использует класс Apps_Info.
Я пытаюсь получить имя пакета из списка в FavouriteApps, но я все еще получаю null.
Пожалуйста, может кто-нибудь сказать, что делать? Ниже приведен код, в следующем порядке: класс Apps_Info и FavouriteApps активностьИнформация о сеттерах и геттерах

public class Apps_Info { 
    private Bitmap bIcon; 
    private String sName; 
    private String sPacks_Name; 

    public Apps_Info(Bitmap icon, String name, String Packs_Name) { 
     bIcon = icon; 
     sName = name; 
     sPacks_Name = Packs_Name; 
    } 

    public void setIcon(Bitmap icon) { 
     bIcon=icon; 
    } 

    public Bitmap getIcon() { 
     return bIcon; 
    } 

    public void setName(String name) { 
     sName=name; 
    } 

    public String getName() { 
     return sName; 
    } 

    public void setPacks_Name(String Packs_Name) { 
     this.sPacks_Name=Packs_Name; 
    } 

    public String getPacks_Name() { 
     return sPacks_Name; 
    } 
} 

FavouriteApps код активности (часть)

String packname, packsname, apps_names; 
Bitmap app_icon; 
Resources res = getResources(); 
List<Apps_Info> ListApps_Info = new ArrayList<Apps_Info>(); 
ListApps_Info.add(new Apps_Info(BitmapFactory.decodeResource(res, R.drawable.browser_app), "Browser", "com.browser")); 
ListApps_Info.add(new Apps_Info(BitmapFactory.decodeResource(res, R.drawable.clock_app), "Alarm Clock", "com.alarm.clock")); 
ListApps_Info.add(new Apps_Info(BitmapFactory.decodeResource(res, R.drawable.threegplus), "3G Secure Connection", "threeg.secureconnect")); 

mGridView.setAdapter(new Apps_Info_Adapter(this, ListApps_Info)); 
Apps_Info packinfo = new Apps_Info(app_icon, apps_names, packname); 
packsname = packinfo.getPacks_Name(); 
apps_names = packinfo.getName(); 
Log.i("The Pack_Name is " + packsname, "Pack Name"); 
+0

http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html – Jave

ответ

1

Вам следует сделать это.

for (int i = 0; i < ListApps_Info.size(); i++) { 
    Apps_Info packinfo = ListApps_Info.item(i); 
    packsname = packinfo.getPacks_Name(); 
    apps_names = packinfo.getName(); 
    Log.i("The Pack_Name is " + packsname, "Pack Name"); 
} 
+0

Sergey спасибо за ответ, на который он ответил на мой вопрос, но небольшая проблема заключается в том, что в раскрывающемся списке ListApps_Info нет элемента(), поэтому я использовал get(), но я не получаю весь результат, который мне нужен. Любое предложение? –

1

Это потому, что вы никогда не инициализировать packname переменную в коде.

String packname,packsname,apps_names; 

Когда вы сделаете это:

Apps_Info packinfo=new Apps_Info(app_icon, apps_names,packname); 
packsname=packinfo.getPacks_Name(); 

ваш геттер делает хорошо, и это нормально, если она возвращает нуль.

+0

Но то, что я хочу инициализирован к нему уже в списке ListApps_Info.add (новый Apps_Info (BitmapFactory.decodeResource (res, R.drawable.browser_app), «Браузер», «com.browser»)); –

+0

Удивите, что это компилируется вообще. По крайней мере, IDEA будет громко жаловаться на использование uniniotialized переменной –

+0

. Возможно, вы попытаетесь сделать это: для (Apps_Info current: ListApps_Info) { packsname = current.getPacks_Name(); apps_names = current.getName(); Log.i ("The Pack_Name is" + имя_пакета, "Имя пакета"); } – Joand

Смежные вопросы