Android 以编程方式获取选定行数据

Android 以编程方式获取选定行数据,android,android-tablelayout,Android,Android Tablelayout,我正在开发一个示例应用程序,以了解表中的循环数据应该如何工作 我面临的下一个挑战是如何在点击特定行时获取数据 XML 简单程序 package com.singatour.touristattraction; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TableLayout; import android.widget.TableRow;

我正在开发一个示例应用程序,以了解表中的循环数据应该如何工作

我面临的下一个挑战是如何在点击特定行时获取数据

XML


简单程序

package com.singatour.touristattraction;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;

public class GuideActivity extends AppCompatActivity
{
    TextView tvGuideName = null;
    TableLayout tlGuide = null;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_guide);

        tlGuide     = (TableLayout) findViewById(R.id.tlGuide);

        for(int i  = 0; i < 100; i++)
        {
            TableRow rows = new TableRow(this);
            TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
            rows.setLayoutParams(lp);

            tvGuideName =  new TextView(this);
            tvGuideName.setId(i);
            tvGuideName.setText("I am in row " + i);
            rows.addView(tvGuideName);

            tlGuide.addView(rows, i);
        }
    }
}
package com.singatour.touristattraction;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.widget.TableLayout;
导入android.widget.TableRow;
导入android.widget.TextView;
公共类指南活动扩展了AppCompatActivity
{
TextView tvGuideName=null;
TableLayout tlGuide=null;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_指南);
tlGuide=(TableLayout)findviewbyd(R.id.tlGuide);
对于(int i=0;i<100;i++)
{
TableRow rows=新的TableRow(此);
TableRow.LayoutParams lp=新建TableRow.LayoutParams(TableRow.LayoutParams.WRAP_内容);
rows.setLayoutParams(lp);
tvGuideName=新文本视图(此);
tvGuideName.setId(i);
tvGuideName.setText(“我在同一排”+I);
rows.addView(tvGuideName);
tlGuide.addView(行,i);
}
}
}
我能够循环100行数据,范围从

我在第0排

我在第一排

我在第二排

我在99排


但是,有没有办法获取我在点击行时设置的数据?

我想您需要这样的信息:

 tr = new TableRow(this);
    tr.setOnClickListener(new View.OnClickListener() {
       public void onClick(View view) {
          TableRow t = (TableRow) view;
          TextView firstTextView = (TextView) t.getChildAt(i);
          String firstText = firstTextView.getText().toString();
       }
    });
答复来源:


如果这对你有帮助,请投票支持这个答案。我需要提高我在Stackoverflow上的声誉:)

也许可以在textview上注册onClickListener?你觉得怎么样?嗨,我可以知道(I)来自哪里吗?TextView firstTextView=(TextView)t.getChildAt(I);--它是你的循环计数器(int i=0;i<100;i++)
 tr = new TableRow(this);
    tr.setOnClickListener(new View.OnClickListener() {
       public void onClick(View view) {
          TableRow t = (TableRow) view;
          TextView firstTextView = (TextView) t.getChildAt(i);
          String firstText = firstTextView.getText().toString();
       }
    });