選択不可のリスト項目を指定する事ができます
前回のリスト項目のレイアウトを自由にカスタマイズ(2)を参照し
選択不可の項目を作ります
前回作成したListMemberAdapterの中に以下のものを追記します
public boolean isEnabled(int position) {
if (position == 0)
return false;
else
return true;
}
すると1番目のリスト項目(position = 0)が選択できなくなりますこれは(position+1)番目の項目を選択不可にするものです
一応javaプログラム全体をのせます
package blog.test;
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.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
//独自クラスMemberを作成
private class Member {
private String name,team;
private int number;
public Member(String name, int number , String team) {
this.name = name;
this.number = number;
this.team = team;
}
public String getName() {
return name;
}
public int getNumber() {
return number;
}
public String getTeam() {
return team;
}
}
//BaseAdapterを拡張した独自Adapterの定義
private class ListMemberAdapter extends BaseAdapter {
private Context context;
private List list;
public ListMemberAdapter(Context context) {
super();
this.context = context;
//ListにMemberを追加する
//追加にはMemberクラスを使用
list = new ArrayList();
list.add(new Member("Ichiro", 51,"Mariners"));
list.add(new Member("Matsui", 55,"Rays"));
list.add(new Member("Darvish", 11,"Rangers"));
}
//選択不可の項目を作成
public boolean isEnabled(int position) {
if (position == 0)
return false;
else
return true;
}
public int getCount() {
return list.size();
}
public Object getItem(int position) {
return list.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
Member member = (Member) getItem(position);
TextView tvName,tvNumber,tvTeam;
View v = convertView;
if(v==null){
LayoutInflater inflater =
(LayoutInflater)
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.list, null);
}
if(member != null){
tvName = (TextView) v.findViewById(R.id.textView1);
tvNumber = (TextView) v.findViewById(R.id.textView2);
tvTeam = (TextView) v.findViewById(R.id.textView3);
tvName.setText("Name : "+member.getName());
tvNumber.setText("Number : "+String.valueOf(member.getNumber()));
tvTeam.setText("Team : "+member.getTeam());
}
return v;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView lv = new ListView(this);
setContentView(lv);
lv.setAdapter(new ListMemberAdapter(this));
}
}
スポンサードリンク


