2017-11-30 23 views
-2

안녕 얘들 아, 나는 안드로이드 개발에 문제가있다. 나는 여전히 안드로이드 app을 개발하고있다. 그래서 나는 안드로이드 listview의 문제에 직면하고있다.하나의 목록보기에 두 데이터 항목을 표시하는 방법

내 문제는 하나의 목록보기에 두 개의 데이터 항목을 표시하고 싶습니다. 이런 :

Recipt No :Date 
001  :2017/11/30 

그래서 지금은로드 한 데이터 ArrayAdapter와 요소를 사용한다. 하지만 지금은 목록보기에서 두 개의 데이터를로드하려고합니다.

아래 목록보기에서 하나의 데이터를로드하는 자바 코드를 넣으십시오.

public void showList() 
{ 
    String[] ides = new String[de1.size()];  

    for (int i = 0; i < de1.size(); i++) { 

     ides[i] = de1.get(i).getId().toString(); 



    } 
    ArrayAdapter adapter = new ArrayAdapter<String>(depositDetails.this,R.layout.depositlists,R.id.b,ides); 


     listViewlist.setAdapter(adapter); 



} 

XML 코드

<LinearLayout 
     android:layout_width="500dp" 
     android:layout_height="67dp" 
     android:layout_marginBottom="8dp" 
     android:layout_marginEnd="8dp" 
     android:layout_marginLeft="8dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginStart="8dp" 
     android:layout_marginTop="8dp" 
     android:orientation="horizontal" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintHorizontal_bias="0.0" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintVertical_bias="0.060000002"> 


     <android.support.constraint.ConstraintLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 




      <TextView 

       android:id="@+id/b" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="8dp" 
       android:layout_marginEnd="8dp" 
       android:layout_marginLeft="8dp" 
       android:layout_marginRight="8dp" 
       android:layout_marginStart="8dp" 
       android:layout_marginTop="8dp" 
       android:ellipsize="end" 
       android:gravity="center" 
       android:maxLength="15" 
       android:maxLines="2" 
       android:text="Deposit Index" 
       android:textColor="#c60a0a" 
       android:textSize="18sp" 
       android:textStyle="bold" 
       app:layout_constraintBottom_toBottomOf="parent" 
       app:layout_constraintHorizontal_bias="0.037" 
       app:layout_constraintLeft_toRightOf="@+id/imageViewProduct" 
       app:layout_constraintRight_toRightOf="parent" 
       app:layout_constraintTop_toTopOf="parent" 
       app:layout_constraintVertical_bias="0.0" /> 



      <TextView 
       android:id="@+id/Status" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="8dp" 
       android:layout_marginLeft="8dp" 
       android:layout_marginRight="8dp" 
       android:layout_marginTop="0dp" 
       android:text="TextView" 
       android:textColor="@color/ButtonCol" 
       android:textStyle="bold" 
       app:layout_constraintBottom_toBottomOf="parent" 
       app:layout_constraintHorizontal_bias="0.03" 
       app:layout_constraintLeft_toRightOf="@+id/imageViewProduct" 
       app:layout_constraintRight_toRightOf="parent" 
       app:layout_constraintTop_toBottomOf="@+id/b" 
       app:layout_constraintVertical_bias="0.555" /> 
     </android.support.constraint.ConstraintLayout> 

    </LinearLayout> 
+1

대신 ArrayAdapter''의 어댑터에 대한 클래스를 만들고 그 .. 당신은 참조 할 수 있습니다이 내 필요한 속성을 정의 부분 ** [여기 예제] (http://www.vogella.com/tutorials/AndroidListView/article.html#adapterown_example) ** –

+2

항목에 맞춤 레이아웃 및 어댑터를 사용해야합니다. 자세한 내용은 ** [이미지 및 텍스트가 포함 된 Android Custom ListView] (https://www.androidhive.info/2014/07/android-custom-listview-with-image-and-text-using-volley/) * * –

답변

2

를 사용하여 사용자 정의 어댑터

public class CustomAdapter extends ArrayAdapter<User> { 

Context context; 
ArrayList<User> userArrayList; 
public CustomAdapter(Context context,ArrayList<User> userArrayList) { 
    super(context, R.layout.depositlists, userArrayList); 
    this.context=context; 
    this.userArrayList=userArrayList; 

} 

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


    if (convertView == null) { 
     convertView = LayoutInflater.from(getContext()).inflate(R.layout.depositlists, parent, false); 
    } 

    User user = getItem(position); 


    TextView b = (TextView) convertView.findViewById(R.id.b); 
    TextView Status = (TextView) convertView.findViewById(R.id.Status); 

    b.setText(user.getReciptNo()); 
    Status.setText(user.getDate()); 

    return convertView; 
} 
} 


Replace showList method 

public void showList() 
{ 
    ArrayList<User> users = new ArrayList<>(); 

    for (int i = 0; i < de1.size(); i++) { 

     users.add(new User(i,de1.get(i).getId().toString())); 

    } 
    CustomAdapter adapter = new CustomAdapter(depositDetails.this,users); 

    listViewlist.setAdapter(adapter); 
    } 


Add User Class 


public class User { 
String ReciptNo; 
String Date; 

public User(String reciptNo, String date) { 
    ReciptNo = reciptNo; 
    Date = date; 
} 

public String getReciptNo() { 
    return ReciptNo; 
} 

public void setReciptNo(String reciptNo) { 
    ReciptNo = reciptNo; 
} 

public String getDate() { 
    return Date; 
} 

public void setDate(String date) { 
    Date = date; 
} 
}