2012-11-27 38 views
1

我的Android应用程序出现问题。我使用一个简单的Textview和一个垂直滚动条来显示歌曲中的歌词。问题是,在我的活动中,我在这个Textview上设置了一个Onclick事件。所以当我在文本视图中滚动歌词时,当我从屏幕释放手指时,活动会注册一个点击事件。我不想在滚动后发生onClick事件。安卓处理TextView上的滚动和点击事件

这是我迄今所做的,但它不会因为即时通讯使用onLongClick事件至极不够精确的工作非常好:

public class NowPlayingActivity extends Activity implements ckListener,OnLongClickListener 
{ 
    private TextView lyrics; 
    private static final String TAG_LYRICS = "LYRICS"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     this.lyrics = (TextView) this.findViewById(R.id.now_playing_Lyrics); 
     this.lyrics.setOnClickListener(this); 
     this.lyrics.setMovementMethod(new ScrollingMovementMethod()); 
     this.lyrics.setOnLongClickListener(this); 
} 
public void onClick(View v) 
{ 
    String tag = (String) v.getTag(); 
    if (tag.equals(NowPlayingActivity.TAG_LYRICS)) 
    { 
     if (this.scrolled) //this way, the click action doesnt occur after a scroll 
     { 
      this.scrolled = false; 
     } 
     else 
     { 
      this.scrolled = false; 
      this.artwork.setVisibility(View.VISIBLE); 
      this.lyrics.setVisibility(View.GONE); 
     } 
    } 
    public boolean onLongClick(View arg0) 
    { 
     this.scrolled = true; 

     return this.scrolled; 
    } 

我能做些什么,使之更加“准确”(所以我没有必要做一个longClick它的工作)

谢谢!

+0

请参考这个链接,因为我已经处理了同一个按钮上的click事件和LongClick事件,没有任何冲突。希望你能从中获得一些东西.http://stackoverflow.com/questions/11374444/ clicklistener-and-longclicklistener-on-the-same-button/11374496#11374496.希望这会帮助你,并且实现这个文本而不是按钮 – AkashG

回答

2

把你的textview放在滚动视图中。

<ScrollView 
     android:id="@+id/content_scroll" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_margin="7dip" 
     android:scrollbars="none" > 

     <TextView 
      android:id="@+id/fileContent" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="5dip" /> 
    </ScrollView> 

然后它应该正常工作。希望它有帮助

+0

好吧,我不是这两种方法之间真正的不同,但反正它工作!谢谢! – jumojer