私はまだAndroidのプログラミングでは新しく、私がしようとしていることは、5x5の寸法のTableLayoutを作成したいと思っています。私はこれがInflateサービスを提起しているGridView BaseAdapterを使って行うことができることを知っています。しかし、これについては、私はテーブルレイアウトを使用して適用しようとします。以下はコードです。私はTableLayoutの新しいインスタンスとテーブル行の新しいインスタンスを作成します。各テーブル行で、5 TextViewのインスタンスを作成しました。しかし、いったん私はエミュレータまたは自分の携帯電話で開いて、TableRowは作成されていない、それは単に空白のテーブルレイアウト。また例外もスローされませんでした。5x5寸法のAndroidテーブルレイアウト
GridView navIcon =(GridView)findViewById(R.id.content); navIcon.setAdapter(new ImageAdapter(this));
navIcon.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,long id) {
// TODO Auto-generated method stub
if (position==0){
try{
TableLayout calgrid = (TableLayout) findViewById(R.id.gridtable);
Context ctxt = v.getContext();
TextView[] tView = new TextView[25];
calgrid = new TableLayout(ctxt);
int dip = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,(float) 1, getResources().getDisplayMetrics());
int counter=1;
TableRow[] tr = new TableRow[5];
for(int j=0;j<5;j++){
tr[j] = new TableRow(ctxt);
for(int i=0;i<5;i++){
tView[i] = new TextView(ctxt);
tView[i].setText(String.valueOf(counter));
tView[i].setTextSize(15);
counter+=1;
tView[i].setWidth(50 * dip);
tView[i].setPadding(20*dip, 0, 0, 0);
tView[i].setTextColor(Color.rgb(100, 200, 200));
Toast.makeText(getApplicationContext(), "tView["+i+"] value " + String.valueOf(tView[i].getText()), Toast.LENGTH_SHORT).show();
tr[j].addView(tView[i], 50, 50);
}
calgrid.addView(tr[j]);
}
}catch(Exception e){
Log.e("MainActivity", "Error in activity", e);
Toast.makeText(getApplicationContext(),e.getClass().getName() + " " + e.getMessage(),Toast.LENGTH_LONG).show();
}
}
}
});
ありがとう、私は既存のコードを残しています。それは、calgrid =新しいTableLayout(ctxt)を削除した後に動作しています。私のコードからは、この1行のコードが機能していないからです。次回は、オブジェクトをインスタンス化するときに注意します。私は昨日私の一日を過ごして何が間違っているのか理解します。あなたのアドバイスは本当に役立ちます。 – Zahary
助けてくれてうれしいです。あなたの質問に答えたら、この回答を受け入れてください。 – Craigy