2017-12-14 6 views
-3

동일한 회 전자에 두 개의 배열 목록을 추가하고 싶습니다. spinner을 클릭하면 두 개의 목록이 레이블로 구분되어 표시되어야하므로 어느 항목에서나 선택할 수 있습니다. 같은 spinner에있는 목록. 어떻게하면 android에서 이것을 얻을 수 있습니까?안드로이드에서 분리와 동일한 회 전자에 두 개의 배열 목록을 추가하십시오.

현재 내가 이렇게하고 있습니다. 올바른 방법입니까? 당신은 당신이 그것을 따라 사용할 수있는 세 가지 ArrayList를 만들 필요가이 질문에 대한

private void myFunction(){ 

    ArrayList<String> arrayListOne = new ArrayList<>(); 
    arrayListOne.add("LABEL NAME"); 

    for (int i=0; i< 10; i++){ 

     arrayListOne.add("name"+i); 

    } 

    ArrayList<String> arrayListTwo = new ArrayList<>(); 
    arrayListTwo.add("LABEL DESIGNATION"); 

    for (int i=0; i< 10; i++){ 

     arrayListOne.add("designation"+i); 

    } 

    arrayListOne.addAll(arrayListTwo); 

    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, arrayListOne); 
    arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    mSpinner.setAdapter(arrayAdapter); 

} 
+1

어디 코드와 개념 UI는? 지금까지 한 일을 우리에게 보여주지 않으면 누구도 코드를 작성하지 않고 곧 downvotes가 올 것입니다. –

+0

안녕하세요. 이 질문으로 여기에 올 수있는 유일한 사람은 부정 투표입니다. 연구 노력 (코드 없음)이 표시되지 않기 때문입니다. [묻는 방법] (https://stackoverflow.com/help/how-to-ask)을 읽으십시오. – ADM

답변

0

:

ArrayList<String> arrayOne=new ArrayList<String>(); 
for(int i=0;i<=5;i++) 
{ 
arrayOne.add(" "+i); 
} 

ArrayList<String> arrayTwo=new ArrayList<String>(); 
for(int j=0;j<=5;j++) 
{ 
arrayTwo.add(" "+j); 
} 

after that you should merge both arraylist into one using this: 


ArrayList<String> arrayFinal=new ArrayList<String>(); 
for(k=0;k<arrayOne.size();k++) 
{ 
arrayFinal.add(arrayOne.get(k)); 
} 

for(u=0;u<arrayTwo.size();u++) 
{ 
arrayFinal.add(arrayTwo.get(u)); 
} 

지금 당신이 병합 두 ArrayList에 데이터를 신갈 ArrayList를 찾을 수 있습니다, 지금 당신은하여 회 전자를 초기화 할 수 있습니다 최종 arraylist 데이터.

만들이를 사용하여 라벨 를 사용하지 않을 경우 그 장소의 위치를 ​​보낼 경우에 대한 사용자 정의 어댑터 :

public class CustomAdapter extends BaseAdapter { 

    List<String> ayylist; 
    Context context; 
int postionDisable; 


    public CustomAdapter(Context context, List<String> ayylist,int postionDisable) { 
     this.ayylist = ayylist; 
     this.context = context; 
     this.postionDisable=postionDisable; 
    } 


    @Override 
    public int getCount() { 
     return ayylist.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return ayylist.get(position); 
    } 

    public boolean areAllItemsEnabled() { 
     return false; 
    } 

    public boolean isEnabled(int position) { 
     if (position == postionDisable) { 
      return false; 
     } else return true; 
    } 

    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = inflater.inflate(R.layout.simpletext1, parent, false); 
     TextView textView = (TextView) convertView.findViewById(R.id.TextView); 
     textView.setText(ayylist.get(position).toString()); 
     textView.setBackgroundColor(context.getResources().getColor(R.color.whiteColor)); 
     if (position == postionDisable) { 
      textView.setTextColor(context.getResources().getColor(R.color.blackcolor)); 
      textView.setTextSize(15); 
     } 

     return convertView; 
    } 
} 
+0

하지만 어떻게 목록에 레이블을 추가하고 레이블을 비활성화 할 수 있습니까 –

+0

여기에 최종 arraylist에 두 번째 arraylist를 추가하기 전에 키를 추가 할 수 있습니다 arrayFinal.add ("second for tag"); –

+0

편집 한 코드와 사용자 정의 어댑터를 확인하십시오. 사용자 정의 어댑터에서 3 가지 인수를 전달하십시오. 1.context 2. araylist 3. position. 세 번째 위치의 은 "arrayOne.size() + 1"값을 전달합니다. –

관련 문제