Android 에서 실 현 된 ListView 그룹 레이아웃 개선 예시
인터넷 에 전 재 된 글 이기 때문에 여기 서 쓸데없는 말 을 많이 하지 않 겠 습 니 다.먼저 최종 효과 도 를 보 겠 습 니 다.
그 다음 에 이 ListView 레이아웃 을 실현 하 는 주요 코드 입 니 다.
1.프로그램 메 인 인터페이스 SeparateListView.자바
package whu.iss.wuxianglong;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class SeparateListView extends Activity {
ListView listView;
MyAdapter myAdapter;
public List<String> listTag = new ArrayList<String>();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView) findViewById(R.id.list);
myAdapter = new MyAdapter(this,
android.R.layout.simple_expandable_list_item_1, getData());
listView.setAdapter(myAdapter);
}
private List<String> getData() {
List<String> data = new ArrayList<String>();
int i = 0;
data.add("A");
listTag.add("A");
data.add("aa " + (i++));
data.add("a " + (i++));
data.add("aa " + (i++));
listTag.add("B");
data.add("B");
data.add("bb " + (i++));
data.add("b " + (i++));
data.add("b " + (i++));
data.add("b " + (i++));
listTag.add("C");
data.add("C");
data.add("c " + (i++));
data.add("c " + (i++));
listTag.add("D");
data.add("D");
data.add("d " + (i++));
data.add("d " + (i++));
data.add("d " + (i++));
listTag.add("E");
data.add("E");
data.add("e " + (i++));
data.add("e " + (i++));
data.add("e " + (i++));
listTag.add("F");
data.add("F" );
data.add("f " + (i++));
return data;
}
class MyAdapter extends ArrayAdapter<String> {
public MyAdapter(Context context, int textViewResourceId,
List<String> objects) {
super(context, textViewResourceId, objects);
}
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
// - ,
return !listTag.contains(getItem(position));
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
//
if(listTag.contains(getItem(position))){
//
view = LayoutInflater.from(getContext()).inflate(R.layout.group_list_item_tag, null);
}else{
//
view = LayoutInflater.from(getContext()).inflate(R.layout.group_list_item, null);
}
//
TextView textView = (TextView) view.findViewById(R.id.group_list_item_text);
textView.setText(getItem(position));
// view
return view;
}
}
}
2.프로그램 메 인 인터페이스 레이아웃 파일 main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
3.ListView 에서 데이터 부분 스타일 레이아웃 파일 grouplist_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip">
<ImageView
android:src="@drawable/icon"
android:layout_width="50px"
android:layout_height="50px">
</ImageView>
<TextView
android:id="@+id/group_list_item_text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:paddingLeft="5dip"
android:gravity="center_vertical">
</TextView>
</LinearLayout>
4.ListView 에서 그룹 로고 줄 의 스타일 레이아웃 파일 grouplist_item_tag.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#555555"
android:paddingLeft="10dip">
<TextView
android:id="@+id/group_list_item_text"
android:layout_width="wrap_content"
android:layout_height="20dip"
android:textColor="#ffffff"
android:gravity="center_vertical">
</TextView>
</LinearLayout>
더 많은 안 드 로 이 드 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.본 고 에서 말 한 것 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.