2010-04-22 65 views
22

在我的应用程序创建的动态表行就像在本教程: http://en.androidwiki.com/wiki/Dynamically_adding_rows_to_TableLayoutAndroid的 - 附加的数据视图

for(int i = startDay; i < startDay + 7; i++){ 

     /* Create a TextView to be the row-content. */ 
     TextView day = new TextView(this); 
     day.setText(Integer.toString(i)); 
     day.setLayoutParams(new LayoutParams(
       LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT)); 

     day.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Log.i("Listener: ", "Click"); 
      } 

所以,现在当我点击一个TextView我可以注册点击事件,但怎么办我确定哪个TextView被点击了?

不只是一个事件得到的对象,而是像点击哪天的数据?

理想情况下,我希望将数据附加到我动态创建的每个视图。 JavaScript jQuery中的data()方法。

现在我可以看到只有一种方法来解决这个问题 - 创建TextView时添加数据和点击数据 - 获取id并解析它以获取我的数据。但它让我觉得很丑陋。

有没有办法将任意数据附加到android视图?

回答

47

通过查看方法找到答案。也许它会对某人有用。

方法我需要的是:

setTag()和getTag()

http://developer.android.com/reference/android/view/View.html#setTag%28java.lang.Object%29

+0

会发生什么,如果我需要几个数据?不只是一个标签? – 2014-12-24 22:55:47

+2

@FranciscoCorralesMorales您可以添加多个标签,每个标签由一个int键标识。 – 2015-01-30 10:41:32

+0

@FranciscoCorralesMorales你可以添加一个唯一的对象标识符列表到标签。 – CodeShadow 2017-03-16 10:51:19

相关问题