Listview 어댑터 선형 레이아웃에 항목을 추가하는 방법

Syed Qasim Ahmed

listview를 채우는 방법을 알고 있으며 사용자 지정 어댑터를 만드는 방법을 알고 있습니다. ListView의 rowLayout의 선형 레이아웃 안에 View를 추가하고 싶습니다. 다음은 MyList 어댑터입니다.

각 항목 레이아웃이 런타임에 생성되는 목록보기를 원하지만 이것을 얻을 수 없습니다.

이 코드는 ListView없이 작동하지만 listview 내부의 Linearlayout에 추가하면 오류가 발생합니다.

public class KmapListAdapter extends BaseAdapter  {

    Context context;
    LayoutInflater layoutInflater;
    List<KmapModel> mOriginalValues = new ArrayList<KmapModel>();


    public KmapListAdapter(Context activity, List<KmapModel> kmapModelList) {

        this.context = activity;
        this.mOriginalValues = kmapModelList;

    }

    @Override
    public int getCount() {
if(mOriginalValues == null)
    return  0;
        return mOriginalValues.size();
    }

    @Override
    public Object getItem(int position) {

        return mOriginalValues.get(position);
    }

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

    ViewHolder Holder ;

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        KmapModel kmapModel;
        if (layoutInflater == null)
            layoutInflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            Holder = new ViewHolder();
            convertView = layoutInflater.inflate(R.layout.rowlayout, null);
            Holder.linearLayout = (LinearLayout) convertView.findViewById(R.id.linear_layout_matrix_1);

            convertView.setTag(Holder);

        } else
            Holder = (ViewHolder) convertView.getTag();


        kmapModel = mOriginalValues.get(position);
        Holder.linearLayout.addView(kmapModel.getLinearLayout());
        return convertView;
    }




    static class ViewHolder {
        LinearLayout linearLayout;}}

그리고 그것은 내 모델 목록입니다

 public List<KmapModel> ListViewOneItem( int ROWS, int COLS) {

        String[][] KmapArray = KMapMaker(ROWS, COLS);
        //  Log.v("Kmap array",""+KmapArray);
        TextView[][] KmapTextView = new TextView[KmapArray.length][KmapArray[0].length];

        int temp = 3;
        for (int i = 0; i < KmapArray.length; i++) {
            KmapModel kmapModel = new KmapModel();
            LinearLayout rowLinearLayout = makeRowLinearLayout();


            for (int j = 0; j < KmapArray[0].length; j++) {

                TextView rowTextView = makeTextView();
                rowTextView.setPadding(4, 4, 4, 4);


                rowLinearLayout.addView(rowTextView);
                KmapTextView[i][j] = rowTextView;// Add a text view in a jagged array for later use

            }
            kmapModel.setLinearLayout(rowLinearLayout);
            kmapModelList.add(kmapModel);


        }
        return  kmapModelList;
    }

이제 오류가 발생했습니다.

지정된 하위에 이미 상위가 있습니다. 먼저 자식의 부모에서 removeView ()를 호출해야합니다. 이 줄에

 Holder.linearLayout.addView(kmapModel.getLinearLayout());

Q1)이 문제를 해결하는 방법 Q2)이 문제가 발생하는 이유는 무엇입니까?

감사합니다 @pskink 그는 나에게 시도하는 방법을 제공하고 솔루션을 업로드합니다.

Tatarized

지정된 하위에 이미 상위가 있습니다.

아이에게 두 번째 부모를 주려고하지 마십시오. 모든 견해는 부서진 집에서 나온 것입니다. 그들은 한 부모가 있습니다.

보기에보기를 추가 할 수 있지만 이미 추가 된보기는 추가 할 수 없습니다. 이로 인해 루프가 발생하고 루프가 반복됩니다. 그리고 뷰 트리를 성공적으로 반복하려면 트리가되어야합니다. 따라서 뷰는 단 하나의 부모를 얻습니다. 이미 가지고있는 레이아웃을 지우고 사용하거나 레이아웃에 새보기를 추가하거나 기본적으로보기 트리의 여러 위치에서 동일한 개체를 사용하지 않는 원하는 모든 항목을 추가합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ListView 용 사용자 지정 어댑터에 항목을 동적으로 추가하는 방법

분류에서Dev

ListView 데이터가 비어있을 때 선형 레이아웃을 숨기는 방법은 무엇입니까?

분류에서Dev

ListView에서 선택한 항목에 따라 레이아웃을 채우는 방법은 무엇입니까?

분류에서Dev

내 GridView 어댑터에 새 데이터 항목을 추가하는 방법

분류에서Dev

espresso로 선택하는 방법 : 어댑터의 항목, 활동의 프레임 레이아웃 내부 조각에 표시됩니까?

분류에서Dev

REST API, 사용자 지정 목록보기, 어댑터, 행 레이아웃을 사용하여 xamarin Android C #에서 Listview를 채우는 방법

분류에서Dev

어레이 어댑터에서 선택한 항목을 문자열에 저장하는 방법

분류에서Dev

사용자 지정 기본 어댑터를 사용하여 listView에서 항목을 삭제하는 방법

분류에서Dev

Fragment 레이아웃에 ListView 어댑터 추가

분류에서Dev

recycleview 어댑터 내부의 레이아웃 가시성을 설정하는 방법, 내 어댑터 코드는

분류에서Dev

데이터베이스 커서 어댑터가 지원하는 Android ListView의 레이아웃 내에서 하나의보기를 숨기는 방법

분류에서Dev

Android-선형 레이아웃 사이에 선을 생성하는 방법

분류에서Dev

조각의 ViewPager에있는 Listview 어댑터-활동을 가져 오는 방법

분류에서Dev

기본 어댑터에서 사용자 지정 레이아웃을 조정하는 방법

분류에서Dev

클릭 할 때 다른 레이아웃 파일에 Android ListView 항목을 표시하는 방법

분류에서Dev

클릭으로 새 레이아웃에 Android ListView 항목을 표시하는 방법

분류에서Dev

어댑터 외부에서 목록 항목 위젯을 처리하는 방법

분류에서Dev

WPF의 Listview에 항목을 추가하는 방법

분류에서Dev

ListView xamarin.android에 항목을 더 추가하는 방법

분류에서Dev

내 ListView에 ArrayList 항목을 추가하는 방법

분류에서Dev

Xamarin.Android에서 DataTable을 ListView 어댑터로 변환하는 방법

분류에서Dev

활동에서 ListView 어댑터의 getItem (i)을 호출하는 방법

분류에서Dev

다른 항목이있는 선형 레이아웃 내부의 listView

분류에서Dev

항목을 ListView로 끌어서 놓는 방법 및 항목이 놓인 항목을 감지하는 방법

분류에서Dev

더 많은 선형 레이아웃이 추가되면 높이를 조정하도록 모든 선형 레이아웃을 상대 레이아웃에 차례로 맞추는 방법

분류에서Dev

Android에서 다른 선형 레이아웃 아래에 하나의 선형 레이아웃을 설정하는 방법

분류에서Dev

ListView 어댑터가 항목 높이를 높입니다.

분류에서Dev

ListView의 어댑터에서 ImageView를 분리하는 방법

분류에서Dev

Spinner에 어댑터 값 이외의 기본값을 추가하는 방법

Related 관련 기사

  1. 1

    ListView 용 사용자 지정 어댑터에 항목을 동적으로 추가하는 방법

  2. 2

    ListView 데이터가 비어있을 때 선형 레이아웃을 숨기는 방법은 무엇입니까?

  3. 3

    ListView에서 선택한 항목에 따라 레이아웃을 채우는 방법은 무엇입니까?

  4. 4

    내 GridView 어댑터에 새 데이터 항목을 추가하는 방법

  5. 5

    espresso로 선택하는 방법 : 어댑터의 항목, 활동의 프레임 레이아웃 내부 조각에 표시됩니까?

  6. 6

    REST API, 사용자 지정 목록보기, 어댑터, 행 레이아웃을 사용하여 xamarin Android C #에서 Listview를 채우는 방법

  7. 7

    어레이 어댑터에서 선택한 항목을 문자열에 저장하는 방법

  8. 8

    사용자 지정 기본 어댑터를 사용하여 listView에서 항목을 삭제하는 방법

  9. 9

    Fragment 레이아웃에 ListView 어댑터 추가

  10. 10

    recycleview 어댑터 내부의 레이아웃 가시성을 설정하는 방법, 내 어댑터 코드는

  11. 11

    데이터베이스 커서 어댑터가 지원하는 Android ListView의 레이아웃 내에서 하나의보기를 숨기는 방법

  12. 12

    Android-선형 레이아웃 사이에 선을 생성하는 방법

  13. 13

    조각의 ViewPager에있는 Listview 어댑터-활동을 가져 오는 방법

  14. 14

    기본 어댑터에서 사용자 지정 레이아웃을 조정하는 방법

  15. 15

    클릭 할 때 다른 레이아웃 파일에 Android ListView 항목을 표시하는 방법

  16. 16

    클릭으로 새 레이아웃에 Android ListView 항목을 표시하는 방법

  17. 17

    어댑터 외부에서 목록 항목 위젯을 처리하는 방법

  18. 18

    WPF의 Listview에 항목을 추가하는 방법

  19. 19

    ListView xamarin.android에 항목을 더 추가하는 방법

  20. 20

    내 ListView에 ArrayList 항목을 추가하는 방법

  21. 21

    Xamarin.Android에서 DataTable을 ListView 어댑터로 변환하는 방법

  22. 22

    활동에서 ListView 어댑터의 getItem (i)을 호출하는 방법

  23. 23

    다른 항목이있는 선형 레이아웃 내부의 listView

  24. 24

    항목을 ListView로 끌어서 놓는 방법 및 항목이 놓인 항목을 감지하는 방법

  25. 25

    더 많은 선형 레이아웃이 추가되면 높이를 조정하도록 모든 선형 레이아웃을 상대 레이아웃에 차례로 맞추는 방법

  26. 26

    Android에서 다른 선형 레이아웃 아래에 하나의 선형 레이아웃을 설정하는 방법

  27. 27

    ListView 어댑터가 항목 높이를 높입니다.

  28. 28

    ListView의 어댑터에서 ImageView를 분리하는 방법

  29. 29

    Spinner에 어댑터 값 이외의 기본값을 추가하는 방법

뜨겁다태그

보관