Android - 将数据附加到视图

Leo*_*nti 30 android android-widget

在我的应用程序中,我在表中创建动态行,就像在本教程中一样:http: //en.androidwiki.com/wiki/Dynamically_adding_rows_to_TableLayout

 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");
          }
Run Code Online (Sandbox Code Playgroud)

所以现在当我单击TextView时我可以注册click事件,但是如何确定单击了哪个TextView?

不仅仅是我在事件中获得的对象,而是点击了哪一天的数据?

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

现在我只能看到解决这个问题的一种方法 - 创建TextView时添加带数据的id,点击时 - 获取id并解析它以获取我的数据.但它让我感到丑陋.

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

Leo*_*nti 57

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

我需要的方法是:

setTag()和getTag()

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

  • @FranciscoCorralesMorales您可以添加多个标签,每个标签由一个int键标识. (2认同)