2017-02-03 5 views
-6

내 안드로이드 애플 리케이션의 Logic Java에 약간 문제가 있습니다. 나는이 상태로 배열을 필터링해야합니다Java에서 n 또는 n 숫자를 제외한 모든 숫자를 가진 값

Category A = 0 , B = 1 , C = 2 , D = AllNumber except 1 and 2

이것은 버튼의 OnClickListener를 :

buttonAll.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      try { 
       filteredSubGroupList = (ProgramMethod.filterArray(subGroupList, "main-group-nr", "" ,false)); 
       genericAdapterSubCategory.notifyDataSetChanged(); 
       genericAdapterArticle.notifyDataSetChanged(); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 

    buttonFood.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      try { 
       filteredSubGroupList = (ProgramMethod.filterArray(subGroupList, "main-group-nr", Integer.toString(1) ,true)); 
       genericAdapterSubCategory.notifyDataSetChanged(); 
       genericAdapterArticle.notifyDataSetChanged(); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 

    buttonBeverage.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      try { 
       filteredSubGroupList = (ProgramMethod.filterArray(subGroupList, "main-group-nr", Integer.toString(2) ,true)); 
       genericAdapterSubCategory.notifyDataSetChanged(); 
       genericAdapterArticle.notifyDataSetChanged(); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 

    buttonOther.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      // D Value In here 

     } 
    }); 

방법 D 값을 얻는 방법? , thisthis을 읽었지만 해결책이 없었습니다. 미리 감사드립니다.

+0

는 난 단지 당신이 그것을 가지고 –

+0

를 수행하여 기존 코드를 보여주십시오 당신의 입력과 기대되는 결과물, 당신이 무엇을 요구하고 있는지를 아는 것은 어렵습니다. JSON은 무엇입니까? 'subGroupList' 란 무엇입니까? –

+0

내가 D 값을 얻을 수있다, 나는 [mcve] 문제와 명확한 설명을하지 않고 내 코드 –

답변

0

모든 Questi와 uderstand하지 않도록 내 나쁜 영어 죄송합니다 "는 D 값을 받고"에 대해 질문을하는지 이해가 안 돼요 에. 모든 주셔서 감사합니다 제안과 답변,

I/System.out: 3 
I/System.out: [{"zknr":98,"bezeich":"CIGARETTE","fibukonto":"14","departement":1,"betriebsnr":98,"main-group-nr":3},{"zknr":700,"bezeich":"DISCOUNT","fibukonto":"00","departement":1,"betriebsnr":0,"main-group-nr":30}] 

나를 모두가 내 나쁜 영어 죄송합니다 다시 1 & 2를 제외하고 int로 얻을 할 것 : 나는

for(int i=3; i<filteredSubGroupList .length(); i++){ 
       try { 
        filteredSubGroupList = (ProgramMethod.filterArray(subGroupList, "main-group-nr", String.valueOf(3), false)); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 

가 로그 캣이 코드 내 문제를 해결했습니다.

2

보낸 링크를 기반으로 특정 조건과 일치하는 임의의 숫자를 생성하려는 것 같습니다. 그렇게하려면 숫자가 적당 할 때까지 난수 생성을 계속해야합니다.

예 : (당신이 언급 한 조건)

Random random = new Random(); //your random number generator 

int value; 
int max = 10; //max value you want to get, exclusive 
int min = 1 //minimum value you want to get, inclusive 

do 
{ 
    value = random.nextInt(max - min) + min; //generates a random number between min and max 
} 
while(value == 1 || value == 2); //will restart if value is 1 or 2, as you asked 
+0

D 값이 1과 2를 제외한 모든 숫자가 될 수 있기 때문에 최대 값이 필요 없다고 생각하거나 unlimeted 숫자로 최대 값을 설정할 수 있습니까? –

+0

@Mario Integer.MAX_VALUE를 사용할 수 있습니다. –

+0

@MarioMargoPradipta "무제한"아무것도 없습니다. Java의 모든 정수는'Integer.MAX_VALUE'와'Integer.MIN_VALUE' 사이에 있어야합니다. 당신이 찾고있는 것이 맞습니까? 그렇다면 min과 max를이 2 개의 값으로 바꾸지 만 의도적으로는별로 의미가 없습니다. – Winter

0

당신이 목록을 필터링 직접 단지 새로 만듭니다 하나에 목록과 일부 기능의 가용성 내에서 어떤 종류의 클래스가 있다고 가정 ... .

List<Category> list = new ArrayList<Category>(); 

... 
List<Category> filtered = new ArrayList<Category>(); 
for (Category c : list) { 
    if (c.a == 0 && c.b == 1 && c.c == 2 && !(c.d == 1 || c.d == 2)) { 
     filtered.add(c); 
    } 
} 

아니면 당신이

+0

'D 값을 얻는다 '는 뜻입니다. n 숫자를 제외한 모든 숫자를 어떻게 얻을 수 있는지 알고 싶습니다. –

+0

다시 말하지만, "n 숫자"가 의미하는 바는 무엇입니까? –

+0

-.- 내 조건을보십시오. D는 모두 가능합니다. 1과 2를 제외한 숫자. 어떻게 필터 번호를 얻을 수 있습니까? (0, 5, 5, 7, n, n, n, 1과 2 제외) –

관련 문제