2011-06-05 58 views
1

我已经有了一个ViewFlipper,它被多个视图填充,实际上它们是同一个视图。一切工作正常,但设置的onClickListener的按钮工作不喜欢预期:ViewFlipper与不同点击监听器的相同视图

flipStack = (ViewFlipper) findViewById(R.id.clubViewFlipper); 

for(int i=0; i<= clubDataSet.size()-1; i++) { 
clubData = clubDataSet.get(i); 

    LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = vi.inflate(R.layout.detail_overlay, (ViewGroup)findViewById(R.id.clubDetailScrollView), false); 

    Button websiteButton = (Button) view.findViewById(R.id.clubDetailWebsiteButton); 
    websiteButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
      startActivity(webIntent); 
     } 
    }); 

    flipStack.addView(view); 
} 

的ViewFlipper的意见,每一个websiteButton被设置为相同的URL现在。有没有办法改变,或者我的方法与ViewFlipper错误?

谢谢!

brejoc

回答

0

您可以使用标签:

flipStack = (ViewFlipper) findViewById(R.id.clubViewFlipper); 

for(int i=0; i<= clubDataSet.size()-1; i++) { 
clubData = clubDataSet.get(i); 

    LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = vi.inflate(R.layout.detail_overlay, (ViewGroup)findViewById(R.id.clubDetailScrollView), false); 

    Button websiteButton = (Button) view.findViewById(R.id.clubDetailWebsiteButton); 

    // set the button's tag to be the url of the club 
    websiteButton.setTag(clubData.getUrl()); 
    websiteButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // fetch the URL from the tag. 
      Intent webIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(v.getTag().toString())); 
      startActivity(webIntent); 
     } 
    }); 

    flipStack.addView(view); 
} 
+0

非常感谢!这是解决方案! – brejoc 2011-06-05 21:07:39

0

它看起来没问题,只是你永远不会改变URL。如果您需要为每个视图指定不同的网址,则需要在循环内的某处更改它。您可以将它们设置为与您的视图相对应的String[],在这种情况下仅使用urls[i]。无论如何,这是一种方式。

+0

噢,对不起,我只是一味地切出URL的人口。其实我已经完成了你的建议,但没有奏效。费米setTag的答案是解决方案。 – brejoc 2011-06-05 21:10:13

相关问题