Как я могу знать, что TextView был clickbale? - PullRequest
0 голосов
/ 07 апреля 2010

У меня есть одно сомнение. У меня есть итерация 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 голосов
/ 08 апреля 2010

Решение того, что я хотел:

На мероприятии я создаю это.

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);
}
0 голосов
/ 08 апреля 2010

Я не уверен, что понимаю вас полностью, но из того, что я понимаю, вы хотите остановить итерацию, когда нажимаете на TextView.

Так что один из способов сделать это - это.Объявите логическое свойство для этого класса, чтобы использовать его для управления циклом, в этом случае я назвал его isStop и начальное значение с false .

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

then

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, флаг отключает цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...