2014-01-20 6 views
-1

Я пытаюсь найти ссылку на массив в другом классе и с большим удовольствием. Может ли кто-нибудь помочь ..? Это код.ref массив из другого класса

Как я понимаю это сорбент getName работает на строку, но я не знаю, как ссылаться на массив с геттером aff_array[] get afz()

public class aff_array { String name; aff_array[] afz; 

public aff_array[] getAfz() { 
return afz; 
} 

public String getName() { 
return name; 
} 

public static void main (String[] args) { 

    int z = 3; //total no of affirmations 
    int x = 1; 
    aff_array[] afz = new aff_array[z]; //dim 

    while (x < z) { 
     afz[x] = new aff_array(); // create objects for array 
     x = x + 1; 
    } 

    afz[1].name = "i am the best"; 
    afz[2].name = "you are the rest"; 

} 

Это другой класс и где я хочу значение массива заменить aff_array.class.getName() с aff_array[] getAfz(), но я не знаю, как это сделать или ссылаться afz(1), например (getName работает)

public void onReceive(Context context, Intent intent) 
{ 

    setNotification(context, aff_array.class.getName()); 
    WakeLocker.acquire(context); 
    Toast.makeText(context,"One shot alarm received. No more toasts will be shown.", Toast.LENGTH_SHORT).show(); 
    WakeLocker.release(); 
} 

ответ

1

, что об этом:

public String getAfz(int i) { 
    return aff_array[i]; 
} 
0

Вам просто нужно сделать именно:

aff_array instance = new aff_array(); 
// set the array inside it 
setNotification(context, instance.getAfz()[0].getName()); 

Требуется заполнить массив перед доступом к ней в одном экземпляре instance.

+0

спасибо - компилируется, но сбой – sunirmalya

+0

сбой ?? ошибка выполнения? если его ArrayIndexOutOfBounds, то вам нужно это понять самостоятельно или сообщить об ошибке –

+0

кажется, что это null - извините - я продолжу искать спасибо – sunirmalya

0

Похоже, вы хотите сделать это static. В этом случае, вы должны объявить массив как:

private static aff_array[] afz; 

public static aff_array[] getAfz() { 
    return afz; 
} 

Затем вы можете получить доступ к массиву следующим образом:

setNotification(context, aff_array.getAfz()[1].getName()); 

принять к сведению:

aff_array.class.getName() является не звонит изготовленный под заказ getName() способ. Он звонит java.lang.Class.getName().

Для вызова пользовательской GetName() вы должны вызвать aff_array.getName()(если статический) или myArray.getName() где myArray является экземпляром aff_array.

+0

он компилируется, но сбой – sunirmalya

+0

Пожалуйста, будьте более конкретным ... непонятно, что вы «пытаюсь достичь, поэтому мы все делаем все возможное, чтобы помочь вам. Но ваш вопрос и комментарии слишком расплывчаты ... – ADTC

0

aff_array mainArray = новый aff_array(); главныйArray. AFZ (0) .getName(); Вы можете получить таким образом

метода
0

getAfz() возвращает весь массив, но так как вам нужна определенная запись в массиве, вы можете либо инициализировать массив, а затем ссылаться на него:

aff_array aa = new aff_array(); 
    String name = aa.afz[1].getName(); // reference this in your setNotification 

Или , вы можете создать метод, который возвращает конкретный объект внутри массива:

public aff_array[] getAfz(int i) { 
     return add_array[1]; 
    } 
Смежные вопросы