나는 데이터베이스에있는 항목의 수에 따라 linearLayout을 사용하여 목록을 만들고 TextViews를 추가하고 있습니다. 문제는 목록에서 왼쪽으로 스 와이프 할 때 항목을 삭제할 수 있기를 원합니다. 나는 당신이 스 와이프하는 요소 (보기)를 얻는 방법을 궁금해하고 있었습니까? 다음은 TextView를 추가하기 위해 얻은 코드입니다.안드로이드에 대한 스 와이프 (onFling) 요소의 getView?
for(int i = 0; i < nrOfTodos; i++) {
TextView v = new TextView(this);
String title = todos.get(i).getTitle();
System.out.println(title);
v.setText(title);
v.setHeight(listItemSize);
v.setAllCaps(true);
v.setTextColor(Color.parseColor("#FFD9A7"));
v.setTextSize(listItemSize/6);
v.setHorizontallyScrolling(false);
v.setMaxLines(1);
v.setEllipsize(TruncateAt.END);
v.setPadding(30, 50, 0, 0);
v.setId(i);
todoViews.add(v);
v.setOnTouchListener(new OnSwipeTouchListener(this) {
@Override
public void onSwipeLeft() {
/*
*
*
* TODO!!! NEXT PART OF MY PLAN TO WORLD DOMINATION!
*
*
*/
}
});
if(i%2 == 1) {
v.setBackgroundColor(Color.parseColor("#11FFFFFF"));
}
ll.addView(v, i);
}
와 나는 또한이
public class OnSwipeTouchListener implements OnTouchListener {
private final GestureDetector gestureDetector;
public OnSwipeTouchListener(Context context) {
gestureDetector = new GestureDetector(context, new GestureListener());
}
public void onSwipeLeft() {
}
public void onSwipeRight() {
}
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
private final class GestureListener extends SimpleOnGestureListener {
private static final int SWIPE_DISTANCE_THRESHOLD = 50;
private static final int SWIPE_VELOCITY_THRESHOLD = 10;
@Override
public boolean onDown(MotionEvent e) {
//always return true since all gestures always begin with onDown and <br>
//if this returns false, the framework won't try to pick up onFling for example.
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
float distanceX = e2.getX() - e1.getX();
float distanceY = e2.getY() - e1.getY();
if (Math.abs(distanceX) > Math.abs(distanceY) && Math.abs(distanceX) > SWIPE_DISTANCE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
if (distanceX > 0)
onSwipeRight();
else
onSwipeLeft();
return true;
}
return false;
}
}
}
하지만 실제로보기를 얻을은 titleText를 얻을 데이터베이스에서 그것을 제거하는 방법을 알아낼 수 없습니다 (나는 데이터베이스에서 제거 할 수 있습니다이, 하지만 나는 물건이 스 와이프 된 것을 얻을 수 없다. ^^). 모든 아이디어가 크게 감사하겠습니다.
okey 그래서 약간 수정하고 대신 ArrayAdapter를 변경하여 TextViews를 가져 와서 사용자 정의 텍스트 뷰를 표시해야합니다. 하지만 이제는 "androidWidget.TextVieW [15234fdxf3]"과 같은 것을 추가합니다. listView의 요소로 textViews를 추가하지만 제목 만 표시하는 방법이 있습니까? – Clanket
많은 변화가 있었지만 지금은 앞으로 나아갈 것입니다. 확실히 올바른 길로 나를 인도 했으므로 이것을 유용하다고 생각합니다! – Clanket
고맙습니다. – jstn