我目前在android中有一个表格布局。这被设置为时间表,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fadeScrollbars="false" >
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/table"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="*" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/blank"
android:background="@drawable/border" />
<TextView
android:id="@+id/mon"
android:background="@drawable/border"
android:text="@string/monday" />
<TextView
android:id="@+id/tues"
android:background="@drawable/border"
android:text="@string/tuesday" />
<TextView
android:id="@+id/wed"
android:background="@drawable/border"
android:text="@string/wednesday" />
<TextView
android:id="@+id/thurs"
android:background="@drawable/border"
android:text="@string/thursday" />
<TextView
android:id="@+id/fri"
android:background="@drawable/border"
android:text="@string/friday" />
<TextView
android:id="@+id/sat"
android:background="@drawable/border"
android:text="@string/Saturday" />
<TextView## Heading ##
android:id="@+id/sun"
android:background="@drawable/border"
android:text="@string/Sunday" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/nine"
android:background="@drawable/border"
android:text="@string/nine" />
<TextView
android:id="@+id/nineone"
android:background="@drawable/border" />
<TextView
android:id="@+id/ninetwo"
android:background="@drawable/border" />
<TextView
android:id="@+id/ninethree"
android:background="@drawable/border" />
<TextView
android:id="@+id/ninefour"
android:background="@drawable/border" />
<TextView
android:id="@+id/ninefive"
android:background="@drawable/border" />
<TextView
android:id="@+id/ninesix"
android:background="@drawable/border" />
<TextView
android:id="@+id/nineseven"
android:background="@drawable/border" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/ten"
android:background="@drawable/border"
android:text="@string/ten" />
<TextView
android:id="@+id/tenone"
android:background="@drawable/border" />
<TextView
android:id="@+id/tentwo"
android:background="@drawable/border" />
<TextView
android:id="@+id/tenthree"
android:background="@drawable/border" />
<TextView
android:id="@+id/tenfour"
android:background="@drawable/border" />
<TextView
android:id="@+id/tenfive"
android:background="@drawable/border" />
<TextView
android:id="@+id/tensix"
android:background="@drawable/border" />
<TextView
android:id="@+id/tenseven"
android:background="@drawable/border" />
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/eleven"
android:background="@drawable/border"
android:text="@string/eleven" />
<TextView
android:id="@+id/elevenone"
android:background="@drawable/border" />
<TextView
android:id="@+id/eleventwo"
android:background="@drawable/border" />
<TextView
android:id="@+id/eleventhree"
android:background="@drawable/border" />
<TextView
android:id="@+id/elevenfour"
android:background="@drawable/border" />
<TextView
android:id="@+id/elevenfive"
android:background="@drawable/border" />
<TextView
android:id="@+id/elevensix"
android:background="@drawable/border" />
<TextView
android:id="@+id/elevenseven"
android:background="@drawable/border" />
</TableRow>
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/twelve"
android:background="@drawable/border"
android:text="@string/twelve" />
<TextView
android:id="@+id/twelveone"
android:background="@drawable/border" />
<TextView
android:id="@+id/twelvetwo"
android:background="@drawable/border" />
<TextView
android:id="@+id/twelvethree"
android:background="@drawable/border" />
<TextView
android:id="@+id/twelvefour"
android:background="@drawable/border" />
<TextView
android:id="@+id/twelvefive"
android:background="@drawable/border" />
<TextView
android:id="@+id/twelvesix"
android:background="@drawable/border" />
<TextView
android:id="@+id/twelveseven"
android:background="@drawable/border" />
</TableRow>
<TableRow
android:id="@+id/tableRow6"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/one"
android:background="@drawable/border"
android:text="@string/one" />
<TextView
android:id="@+id/oneone"
android:background="@drawable/border" />
<TextView
android:id="@+id/onetwo"
android:background="@drawable/border" />
<TextView
android:id="@+id/onethree"
android:background="@drawable/border" />
<TextView
android:id="@+id/onefour"
android:background="@drawable/border" />
<TextView
android:id="@+id/onefive"
android:background="@drawable/border" />
<TextView
android:id="@+id/onesix"
android:background="@drawable/border" />
<TextView
android:id="@+id/oneseven"
android:background="@drawable/border" />
</TableRow>
<TableRow
android:id="@+id/tableRow7"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/two"
android:background="@drawable/border"
android:text="@string/two" />
<TextView
android:id="@+id/twoone"
android:background="@drawable/border" />
<TextView
android:id="@+id/twotwo"
android:background="@drawable/border" />
<TextView
android:id="@+id/twothree"
android:background="@drawable/border" />
<TextView
android:id="@+id/twofour"
android:background="@drawable/border" />
<TextView
android:id="@+id/twofive"
android:background="@drawable/border" />
<TextView
android:id="@+id/twosix"
android:background="@drawable/border" />
<TextView
android:id="@+id/twoseven"
android:background="@drawable/border" />
</TableRow>
<TableRow
android:id="@+id/tableRow8"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/three"
android:background="@drawable/border"
android:text="@string/three" />
<TextView
android:id="@+id/threeone"
android:background="@drawable/border" />
<TextView
android:id="@+id/threetwo"
android:background="@drawable/border" />
<TextView
android:id="@+id/threethree"
android:background="@drawable/border" />
<TextView
android:id="@+id/threefour"
android:background="@drawable/border" />
<TextView
android:id="@+id/threefive"
android:background="@drawable/border" />
<TextView
android:id="@+id/threesix"
android:background="@drawable/border" />
<TextView
android:id="@+id/threeseven"
android:background="@drawable/border" />
</TableRow>
<TableRow
android:id="@+id/tableRow9"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/four"
android:background="@drawable/border"
android:text="@string/four" />
<TextView
android:id="@+id/fourone"
android:background="@drawable/border" />
<TextView
android:id="@+id/fourtwo"
android:background="@drawable/border" />
<TextView
android:id="@+id/fourthree"
android:background="@drawable/border" />
<TextView
android:id="@+id/fourfour"
android:background="@drawable/border" />
<TextView
android:id="@+id/fourfive"
android:background="@drawable/border" />
<TextView
android:id="@+id/foursix"
android:background="@drawable/border" />
<TextView
android:id="@+id/fourseven"
android:background="@drawable/border" />
</TableRow>
<TableRow
android:id="@+id/tableRow10"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/five"
android:background="@drawable/border"
android:text="@string/five" />
<TextView
android:id="@+id/fiveone"
android:background="@drawable/border" />
<TextView
android:id="@+id/fivetwo"
android:background="@drawable/border" />
<TextView
android:id="@+id/fivethree"
android:background="@drawable/border" />
<TextView
android:id="@+id/fivefour"
android:background="@drawable/border" />
<TextView
android:id="@+id/fivefive"
android:background="@drawable/border" />
<TextView
android:id="@+id/fivesix"
android:background="@drawable/border" />
<TextView
android:id="@+id/fiveseven"
android:background="@drawable/border" />
</TableRow>
</TableLayout>
</ScrollView>
当用户点击App中的单元格时,我希望能够获取他们单击的确切单元格的位置。我得到列id但我无法获得完整的位置。我的代码如下
public class TimeTable extends Activity {
TextView tv;
TableRow row;
String dayName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time_table);
TableLayout group = (TableLayout) findViewById(R.id.table);
row = (TableRow) group.getChildAt(0);
for (int i = 0; i < group.getChildCount(); i++) {
row = (TableRow) group.getChildAt(i);
for (int j = 0; j < row.getChildCount(); j++) {
tv = (TextView) row.getChildAt(j);
registerForContextMenu(tv);
tv.setId(j);
tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast toast = Toast.makeText(getApplicationContext(), Integer.toString(v.getId()), Toast.LENGTH_LONG);
toast.show();
}
});
}
}
}
任何人都知道如何获得全职?感谢
答案 0 :(得分:1)
建议:我们可以使用循环迭代来获取单元格的位置。在迭代时,它会到达具有特定列和行的每个新单元格。 这对你有用。
TableLayout group = (TableLayout) findViewById(R.id.table);
row = (TableRow) group.getChildAt(0);
for (int i = 0; i < group.getChildCount(); i++)
{
row = (TableRow) group.getChildAt(i);
for (int j = 0; j < row.getChildCount(); j++)
{
tv = (TextView) row.getChildAt(j);
registerForContextMenu(tv);
tv.setId(j);
tv.setOnClickListener(onClick(tv,i,j));
}
}
View.OnClickListener onClick(final TextView tc,final int row,final int col) {
return new View.OnClickListener() {
public void onClick(View v) {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//use col and row as position of the cell together.
Toast toast = Toast.makeText(getApplicationContext(), Integer.toString(v.getId()), Toast.LENGTH_LONG);
toast.show();
}
});
答案 1 :(得分:0)
尝试在每个textview中添加一个不同的标记,以便最近可以引用它。
还添加:
android:descendantFocusability="blocksDescendants"
在xml文件的tablelayout中,这将为您提供textview的正确位置。
答案 2 :(得分:-1)
尝试列表视图而不是表格布局。它有一种滚动到各自位置的方法。
listview.smoothScrollToPosition(position);