我怎么知道TextView可以点击什么?

时间:2010-04-07 13:50:35

标签: android textview

我有一个疑问。我有一个TextViews的迭代,我想要的是当我点击一个TextView时,我想停止迭代并打开一个网页,谁能知道TextView被点击了什么?我有这个代码:

Iterator<TextView> it = text.iterator();
   while(it.hasNext()){

 test = it.next();




 test.setOnClickListener(new View.OnClickListener() {
              public void onClick(View v) {
               //mWebView = (WebView) findViewById(R.id.webview);
               mWebView.setWebViewClient(new WebViewClient() {
                   @Override
                   public boolean shouldOverrideUrlLoading(WebView view, String url) {
                       view.loadUrl(url);
                       return true;
                   }
               });

           mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.loadUrl(url);


              }


              });



      // condition to stop the iteration when i click on TextView 
      }

我想要的是当我点击我想看的TextView时停止迭代的条件,我尝试使用TextView中的一些方法而不起作用。有人可以帮帮我吗?我有TextViews的迭代,因为我想做这个动态,我不知道TextView谁是点击,我想知道什么TextView点击停止迭代,因为如果我不停止这个,为例如,如果我有3个TextView,他们将打开同一个网站。

谢谢并原谅我的英语

2 个答案:

答案 0 :(得分:0)

我不确定我完全理解你,但是从我的理解中你想要在点击TextView时停止迭代。

所以你能做到的一种方法是。声明此类用于控制循环的布尔属性,在本例中我称之为 isStop ,初始值为 false

 while(it.hasNext() && !isStop){
...
    }

然后

public void onClick(View v) {
isStop = true;
//mWebView = (WebView) findViewById(R.id.webview);
               mWebView.setWebViewClient(new WebViewClient() {
                   @Override
                   public boolean shouldOverrideUrlLoading(WebView view, String url) {
                       view.loadUrl(url);
                       return true;
                   }
               });

因此,当您单击TextView时,该标志将关闭循环。

答案 1 :(得分:0)

我想要的解决方案:

在我创建的活动上。

OnClickListener s = new OnClickListener()
{
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        text = (TextView) findViewById(v.getId());
        mWebView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl(url);
    }
};

Iterator<TextView> it = text.iterator();
while(it.hasNext())
{
    text = it.next();
    text.setOnClickListener(s);
}