private class DataAdapter extends ArrayAdapter<CData> {
private LayoutInflater mInflater;
public DataAdapter(Context context, ArrayList<CData> object) {
super(context, 0, object);
mInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View v, ViewGroup parent) {
View view = null;
if (v == null) {
view = mInflater.inflate(R.layout.addtime_listitem, null);
} else {
view = v;
}
final CData data = this.getItem(position);
if (data != null) {
TextView add_s_code_tv = (TextView) view
.findViewById(R.id.add_s_code);
TextView add_s_major_grade_class_tv = (TextView) view
.findViewById(R.id.add_s_major);
TextView add_s_name_tv = (TextView) view
.findViewById(R.id.add_s_name);
TextView add_s_proname = (TextView) view
.findViewById(R.id.add_s_proname);
TextView add_s_day_time = (TextView) view
.findViewById(R.id.add_s_day);
TextView add_s_place = (TextView) view
.findViewById(R.id.add_s_place);
TextView addPossible = (TextView) view
.findViewById(R.id.addpossible);
add_s_code_tv.setText(data.getS_code());
add_s_major_grade_class_tv.setText(data.getS_major()
+ data.getS_grade() + data.getS_classs());
add_s_name_tv.setText(data.getS_name());
add_s_proname.setText(data.getS_proname());
add_s_day_time.setText(data.getS_day() + data.getS_time());
add_s_place.setText(data.getS_place());
addPossible.setText(data.getS_possible());
if ((addPossible.getText().toString() == "수강불가")) {
// item 뷰의 터치 이벤트를 설정합니다.
view.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// 여기서 이벤트를 막습니다.
return true;
}
});
}
}
return view;
}
}
class CData {
데이터 반환메소드들 포함
public String getS_possible() {
boolean possible = false;
for (int a = 0; a < days.length; a++) {
if (days[a].equals(getS_day())) {
조건
possible = true;
}
if (possible == true) {
ab = "수강불가";
} else {
ab = "";
}
}
}
return ab;
}
}
}}
안드로이드를 배우기 시작한지 얼마안된 학생입니다.
어댑터 연결후 리스트뷰 특정항목을 클릭 하면 다른액티비티로 데이터를 보내는 기능인데요
여기서 리스트뷰 안에 있는 텍스트 뷰에 "수강불가"가 있으면 클릭을 방지하려고
인터넷에서 찾아가며 방법을 알아냈는데요.
if ((addPossible.getText().toString() == "수강불가")) {
// item 뷰의 터치 이벤트를 설정합니다.
view.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// 여기서 이벤트를 막습니다.
return true;
}
});
}
여기서 조건을 주고 true 를 반환하면 클릭이 안되는걸로 알고있는데
막상 핸드폰에서 실행시켜보면 어떤 항목은 터치가 되고 어떤항목은 안되고..
어떠한 규칙이 없이 수강불가라는 항목도 터치가되서 다른액티비티로 데이터가 넘어가네요..
조건을 잘못준건지.조건을 잘못줬으면 다 터치가 안되거나 다 터치가 되야하는것 같은데 그런것도 아니고 ㅠ
아니면 제가 지금 잘못뭔가를 잘못한건지.. ㅜㅜ
고수님들 초보자를 위해 답변부탁드려요.