1.-------------갤러리를 상속 받은 클래스 cover.의 아이템 클릭 리스너
cover.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
if (!(eventsongList.get(position).getEventLink()).equals("")
&& !(eventsongList.get(position).getEventLink())
.equals("\n")) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri
.parse(eventsongList.get(position).getEventLink())));
} else {
intent = new Intent(Event_Bell.this, Event_Detail.class);
ParcleablaClass2 pc2 = new ParcleablaClass2(eventsongList
.get(position));
intent.putExtra("EVENT_SONG", pc2);
v = Tab1_Group.tab1_group
.getLocalActivityManager()
.startActivity(
"event_tab",
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
Tab1_Group.tab1_group.replaceView(v);
}
}
});
2-----------------------------그냥 버튼 클릭 리스너
event_back_btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (!(eventsongList.get(position).getEventLink()).equals("")
&& !(eventsongList.get(position).getEventLink())
.equals("\n")) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri
.parse(eventsongList.get(position).getEventLink())));
} else {
intent = new Intent(Event_Bell.this, Event_Detail.class);
ParcleablaClass2 pc2 = new ParcleablaClass2(eventsongList
.get(position));
intent.putExtra("EVENT_SONG", pc2);
v = Tab1_Group.tab1_group
.getLocalActivityManager()
.startActivity(
"event_tab",
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
Tab1_Group.tab1_group.replaceView(v);
}
}
});
저 둘의 차이점이 있나요??
제가 잘못 쓰고 있는 부분이 있는건가요........???
버튼으로 하면 잘 넘어가고
갤러리 상속받은 걸 클릭하면 에러가 나고 ....널포인트에러....ㅠ
미치겠네요 다른 핸드폰은 안그러는데 ICS에서만 그러네여 ;;ㄷㄷ
이틀째 풀고있는데 힘드네요 ㅠㅠ
그리고 cover안에서도 탭그룹으로 안넘기고 걍 startActivity(intent)하면 넘어가고....비록 탭은 구현못하지만...
아 이거 두개의 차이점이 뭘까요?
AdapterView.OnItemClickListener 가 문제 인가요?;;;
도움좀 주세용~
implements OnItemClickListener
이렇게 받아서 cover.setOnItemClickListener(this);
요롷게 하고
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
switch (v.getId()) {
case R.id.gallery1:
if (!(eventsongList.get(position).getEventLink()).equals("")
&& !(eventsongList.get(position).getEventLink())
.equals("\n")) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri
.parse(eventsongList.get(position).getEventLink())));
} else {
intent = new Intent(Event_Bell.this, Event_Detail.class);
ParcleablaClass2 pc2 = new ParcleablaClass2(eventsongList
.get(position));
intent.putExtra("EVENT_SONG", pc2);
v = Tab1_Group.tab1_group
.getLocalActivityManager()
.startActivity(
"event_tab",
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
Tab1_Group.tab1_group.replaceView(v);
}
break;
default:
break;
}
하라는 말씀이신가요?
이렇게 하면 클릭이 안먹는데 ㅠ_ㅠ 멘붕
음 글을 대충 읽어서 다른 내용으로 이해했네요. ㅡ_ㅡ;;
갤러리 버튼 클릭에 대한 처리가 문제이신거 같네요.
제가 갤러리는 안 써봐서.. ㅡ_ㅡ;;
코드는 안보고 글만 대충 읽은게 문제네요;;
logcat으로 에러 로그 보면 몇 번째 줄인지 나오니 어디가 널인지 한번 찾아보세요 ㅜ_ㅡ;
04-17 14:28:32.227: E/AndroidRuntime(9085): java.lang.NullPointerException
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.GestureDetector.onTouchEvent(GestureDetector.java:587)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.widget.Gallery.onTouchEvent(Gallery.java:937)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.View.dispatchTouchEvent(View.java:5486)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1714)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1892)
04-17 14:28:32.227: E/AndroidRuntime(9085): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1371)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.app.Activity.dispatchTouchEvent(Activity.java:2364)
04-17 14:28:32.227: E/AndroidRuntime(9085): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1840)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1892)
04-17 14:28:32.227: E/AndroidRuntime(9085): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1371)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.app.Activity.dispatchTouchEvent(Activity.java:2364)
04-17 14:28:32.227: E/AndroidRuntime(9085): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1840)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728)
04-17 14:28:32.227: E/AndroidRuntime(9085): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1892)
04-17 14:28:32.227: E/AndroidRuntime(9085): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1371)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.app.Activity.dispatchTouchEvent(Activity.java:2364)
04-17 14:28:32.227: E/AndroidRuntime(9085): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1840)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.View.dispatchPointerEvent(View.java:5662)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:2863)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.os.Handler.dispatchMessage(Handler.java:99)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.os.Looper.loop(Looper.java:137)
04-17 14:28:32.227: E/AndroidRuntime(9085): at android.app.ActivityThread.main(ActivityThread.java:4340)
04-17 14:28:32.227: E/AndroidRuntime(9085): at java.lang.reflect.Method.invoke
요롷게 찍혀요 소스 몇번째 줄 이런거 안나오네여 ㅠㅠ
소스가 단편적이라 정확히 모르겠지만 null 익셉션이 나는 이유가 잘못된 리스너를 줘서는 아닌것 같고
GestureDetector.java:587
이클립스에 줄 번호 표시 켜 놓고 위 소스의 위치를 보시기 바랍니다.
null인 부분이 있지 않을까요?
GestureDetector라는 클래스가 없습니다...ㅜ
상속 받은 갤러리 클래스의 소스입니다.
public class Ma_Gallery extends Gallery {
public Ma_Gallery(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
int keyCode;
if(e2.getX() > e1.getX()){
keyCode = KeyEvent.KEYCODE_DPAD_LEFT;
}
else{
keyCode = KeyEvent.KEYCODE_DPAD_RIGHT;
}
onKeyDown(keyCode, null);
return true;
}
}
----------------------
근데 왜 액티비티그룹으로...
v = Tab1_Group.tab1_group
.getLocalActivityManager()
.startActivity(
"event_tab",
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
Tab1_Group.tab1_group.replaceView(v);
요론식으론 안넘어가고
startActivity(intent);이러면 넘어가는지도 의문이구 ㅠㅠ




ics만의 문제는 아닌것 같구요 저도 해당하는 문제가 있었는데 상속을 받고 this 로 넘기면 잘 되는데
new로 할당한 것은 안 되더군요.
특별한 방법을 찾지 못해서 그냥 상속받고 this로 넘겼습니다.
진저브레드였고 옵티머스lte였습니다.
해당하는 문제는 갤럭시탭과 다른 폰 2종에서 테스트 해봤지만 옵티머스lte에서만 발생했습니다.
안되면 어쩔수 없는듯;; 방법이 없는 것도 아니니 해당하는 방법으로 처리하셔야 할 것 같습니다.