Android从Gridlayout访问子TextView

时间:2017-09-07 13:32:40

标签: android onclicklistener android-gridlayout

目前我有一个Gridlayout,它包含NxN个TextViews。

我一直在尝试使用onclick访问网格中的各个textview对象,但它无法正常工作。

以下是我的代码片段

TextView tv;
final GridLayout gv = (GridLayout) getActivity().findViewById(R.id.map_grid);


gv.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            tv = (TextView)gv.getFocusedChild();//gives me a null object
            System.out.println(tv.getId());//error 

        }
    });

是因为getFocusedChild不能这样工作吗?

我的gridView

的xml
     <GridLayout
        android:id="@+id/map_grid"
        android:layout_width="800px"
        android:layout_height="600px"
        android:layout_marginTop="8dp"
        android:columnCount="20"
        android:gravity="center"
        android:horizontalSpacing="30dp"
        android:paddingLeft="20dp"
        android:rowCount="15"
        android:stretchMode="columnWidth"
        android:verticalSpacing="30dp" >

    </GridLayout>

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

你可以尝试这个:

gv.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
  TextView  textview = (TextView) view;
            position = i;
                if(position != 0){
                    textview.setText("Hi");
}}});

答案 1 :(得分:0)

尝试使用setOnItemClickListener而不是setOnClickListener

gv.setOnItemClickListener(new View.OnClickListener() {
    public void onClick(View v) {

      // write your code
    }
});