2016-10-23 2 views
-1

개체 목록에서 내 개체를 얻는 방법을 알아 내려고하고 있습니다.Android Java Objects

간단한 변수로 개체 목록을 만든 "MainHolder.class"를 만들었습니다. 나중에 간단한 정수 목록을 사용하면 부울, 실수, 정수 값을 추가하고 싶습니다.

내 생각은 내 물건에 간단하게 접근하는 것에 관한 것입니다. 예를 들어 :

표시 값은 같은 : CarMain.PlayerLevel.name();

는 같은 값을 추가 : CarMain.PlayerLevel.count +=1;

하지만 지금은 값을 추가하려고하는 문제가있어. 있어 오류 :이 내 MainHolder.class

package com.crelix.crelix; 

public class MainHolder { 

int id; 
String name; 
int count; 

public void id(int id) { 
} 

public MainHolder(String name) { 

} 

public void count(int count){ 
    this.count += count; 
} 

public static void main(String args[]) { 
    MainHolder Money = new MainHolder("Money: "); 
    MainHolder MoneyClicks = new MainHolder("Money Clicks: "); 
    MainHolder Boxes = new MainHolder("Boxes: "); 
    MainHolder BoxClicks = new MainHolder("Boxes Clicks: "); 
    MainHolder BoxLevel = new MainHolder("Box Level: "); 
    MainHolder PlayerLevel = new MainHolder("Player Level: "); 
    MainHolder GarageLevel = new MainHolder("Garage Level: "); 
    MainHolder GarageSlots = new MainHolder("Garage Slots: "); 

    Money.id(1); 
    Money.count(0); 

    MoneyClicks.id(2); 
    MoneyClicks.count(0); 

    Boxes.id(3); 
    Boxes.count(0); 

    BoxClicks.id(4); 
    BoxClicks.count(0); 

    BoxLevel.id(5); 
    BoxLevel.count(1); 

    PlayerLevel.id(6); 
    PlayerLevel.count(1); 

    GarageLevel.id(7); 
    GarageLevel.count(1); 

    GarageSlots.id(8); 
    GarageSlots.count(25); 
} 

}

라인에서

입니다 Cannot resolve symbol PlayerLevelCarMain.PlayerLevel.count +=1;

그리고 MainActivity에서는 여기 플레이어 레벨처럼를 추가 할 :

0 12,392,

} Heres는

이미지에서 내 오류 : 당신은 MainHolder의 주요 메서드 내 PlayerLevel을 정의 Image

+1

어디서나 정의 된'CarMain' 클래스가 보이지 않습니다. –

+0

MainHolder CarMain = new MainHolder(); // 여기 있어요. 주제를 쓰지 않았습니다. 하지만 지금 나는 그 줄에서 오류가 발생했다는 것을 알았습니다. 왜냐하면 문자열 때문이었습니다. 나는 배열리스트를 가지고 있었고 이제는 MainHolder와 같은 모든 클래스를 시도하고있다. 그리고이 문제가 있습니다. – trakasi

+0

대문자로 변수를 시작하는 것은 매우 나쁜 습관입니다. 일반적으로 변수는 대문자로 시작하고 변수 이름은 대문자로 시작합니다. 컨벤션을 존중하면 많은 혼란을 피할 수 있습니다. –

답변

0

. 따라서 클래스를 호출하는 경우에는 보이지 않습니다 (이 경우 MainActivity). 그것들에 접근하기 위해서는 상단에 전역 변수로 정의해야합니다. 매우 나쁜 일입니다. 또한, PlayerLevelMainHolder 안에 선언해서는 안됩니다. 왜냐하면 그 클래스가 수행하기를 원하는 것은 id와 count를 보유하기를 원하기 때문입니다. 대신 MainActivity 안에 PlayerLevel을 선언하십시오.

모든 MainHolders를 포함하는 수퍼 클래스를 절대적으로 원한다면 중첩 클래스를 사용해야합니다.