게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
안드) 액티비티에게 dispatch터치이벤트로 버튼클릭이 되지 않네요 ㅠ
게시물ID : programmer_12081짧은주소 복사하기
작성자 : 빙티
추천 : 0
조회수 : 317회
댓글수 : 2개
등록시간 : 2015/07/14 04:09:39
옵션
  • 본인삭제금지
아래에 올린 글과 다른 내용입니다!!!!
연속으로 글을 올린점 대단히 죄송합니다!

안녕하세요! 반도의 흔한 학생입니다....
제가 만든 서비스에서 testActivity라는 액티비티로 dispatchTouchEvent를 보내주려고 합니다....

그래서 일단 testActivity에서 public static Context mContext;
testActivity의 onCreate 에서 mContext = this;를 해서 아래처럼 액티비티의 intent를 얻어내었습니다

그리고 서비스에게 다음과 같은 액션을 실행하게 하였습니다
1
2
3
4
5
6
7
8
9
Activity testActivity = (Activity) TestActivity.mContext;
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis();
MotionEvent down_event = MotionEvent.obtain(downTime, eventTime,   MotionEvent.ACTION_DOWN,x,y,0);
MotionEvent up_event = MotionEvent.obtain(downTime, eventTime,   MotionEvent.ACTION_UP,x,y,0);
testActivity.dispatchTouchEvent(down_event);
testActivity.dispatchTouchEvent(up_event);
down_event.recycle();
up_event.recycle();
cs

testActivity에 다음과 같은 코드를 주었을 때 토스트는 잘 뜨는데요...
1
2
3
4
5
6
7
8
9
public boolean onTouchEvent(MotionEvent event) {
    super.onTouchEvent(event);
    if(event.getAction()== MotionEvent.ACTION_DOWN) {
        Toast.makeText(getApplicationContext(),
                "ACTION_DOWN"
                , Toast.LENGTH_SHORT).show();
    }
    return true;
}
cs

testActivity에 누르면 toast가 뜨는 버튼을 넣고
dispatchTouchEvent를 통해 버튼을 클릭하려고 하면 되지 않습니다 ㅠㅠㅠㅠ

도대체 왜 이런지 알 수 있을까요???
답변 달아주시면 정말 감사드리겠습니다!

아래는 testActivity 전문입니다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package me.blog.haj990108.winklick;
 
import android.app.Activity;
..........
 
public class TestActivity extends Activity implements OnClickListener{
    
    private TextView dialTextView;
    private String dialNum = "";
    public static Context mContext;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        mContext = this;
        dialTextView = (TextView)findViewById(R.id.dialTextView);
        
        findViewById(R.id.button1).setOnClickListener(this);
        .....
        findViewById(R.id.buttonBack).setOnClickListener(this);
        findViewById(R.id.buttonBack).setOnLongClickListener(new View.OnLongClickListener() {
            public boolean onLongClick(View v) {
                dialNum = "";
                dialTextView.setText("");
                return true;
            }
        });
    }
 
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        int view = v.getId();
        switch(view){
        case R.id.button1 :
            writeDial("1");
            break;
        .........
        case R.id.buttonBack :
            Log.d("TAG", dialNum);
            if(dialNum.length() > 0)
                dialNum = dialNum.substring(0, dialNum.length() - 1);
            Log.d("TAG", dialNum);
            dialTextView.setText(PhoneNumberUtils.formatNumber(dialNum));
            break;
        }
    }
    
    public boolean onTouchEvent(MotionEvent event) {
        super.onTouchEvent(event);
        if(event.getAction()== MotionEvent.ACTION_DOWN) {
            Toast.makeText(getApplicationContext(),
                    "ACTION_DOWN"
                    , Toast.LENGTH_SHORT).show();
        }
        return true;
    }
    
    private void writeDial(String str) {
        dialNum += str;
        dialTextView.setText(PhoneNumberUtils.formatNumber(dialNum));
        Toast.makeText(getApplicationContext(),
                "Clicked Button"+str
                , Toast.LENGTH_SHORT).show();
    }
    
    
}
cs




꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호