我在 android 编程方面绝对是个大人物。到目前为止我已经这样做了..
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.scorecard_fragment, container,
false);
gridLayout = (GridLayout) view.findViewById(R.id.GridLayout1);
/*** Default first row */
gridLayout.setColumnCount(col);
gridLayout.setRowCount(row);
if (col == 1) {
defaultColumn();
}
else {
extendedColumn("");
}
return view;
}
public void defaultColumn() {
// Log.d(TAG, "Default col");
int i;
int k = 1;
for (i = 0; i < 20; i++) {
if (i == 0)
{
ImageView oImageView = new ImageView(getActivity());
oImageView.setImageResource(R.drawable.ic_player);
GridLayout.LayoutParams param = new
GridLayout.LayoutParams();
param.setMargins(0, 0, 0, 0);
gridLayout.addView(oImageView);
} else if (i < 19) {
TextView oTextView = new TextView(getActivity());
oTextView.append("" + (k++) + "\n");
GridLayout.LayoutParams param = new GridLayout.LayoutParams();
param.setGravity(Gravity.CENTER);
param.setMargins(15, 15, 15, 15);
oTextView.setLayoutParams(param);
gridLayout.addView(oTextView);
} else {
TextView oTextView = new TextView(getActivity());
oTextView.append("\n");
GridLayout.LayoutParams param = new GridLayout.LayoutParams();
param.setGravity(Gravity.CENTER);
param.setMargins(15, 15, 15, 15);
oTextView.setLayoutParams(param);
gridLayout.addView(oTextView);
}
}
col++;
}
public void extendedColumn(String str) {
Log.d("", "value c1" + col);
int i;
for (i = 0; i < 20; i++) {
if (i == 0)
{
TextView oTextView = new TextView(getActivity());
oTextView.setText(str);
gridLayout.addView(oTextView);
// oTextView.setBackgroundResource(R.drawable.border);
oTextView.setTextSize(14);
}
else if (i < 19) {
Log.d("Implement spinner", "sdfsdfsdf");
final Spinner s1 = new Spinner(getActivity());
final ArrayAdapter<CharSequence> adapter = ArrayAdapter
.createFromResource(getActivity(), R.array.score_array,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
s1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
updateResult();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
gridLayout.addView(s1);
}
else {
TextView oTextView = new TextView(getActivity());
oTextView.append("\n");
GridLayout.LayoutParams param = new GridLayout.LayoutParams();
param.setGravity(Gravity.CENTER);
param.setMargins(15, 15, 15, 15);
oTextView.setLayoutParams(param);
gridLayout.addView(oTextView);
}
}
col++;
}
public void updateResult() {
int j = gridLayout.getColumnCount();
Log.d(" Column count", "" + j);
int k = gridLayout.getRowCount();
Log.d(" Row count", "" + k);
}
如您所见,我正在尝试从微调器及其当前行和列值获取值。我可以使用 gridLayout.getColumnCount() 和 gridLayout.getRowCount() 来做到这一点。但这给了我总的列和行取决于我有多少用户。但是无论我有多少用户,我都想获得特定的行和列,这样我就可以通过知道哪个用户选择了哪一行和哪一列来计算我的结果。非常感谢帮助或建议。