/ / Android - 行がプログラムで追加されても表示されない場合 - アンドロイド、レイアウト、行、テーブルレイアウト、ウェイト

Android - プログラムで行が追加されても表示されない場合 - Android、レイアウト、行、表レイアウト、ウェイト

私はAndroidアプリケーションに問題があります。 私は動的にTableLayoutに行を追加しようとします。状況: 特定のボタンをクリックすると、行がTableLayoutに追加され、内部のテキストは入力された内容に応じて、特定のEditTextで追加されます。

これは私のXMLファイルの一部です:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:stretchColumns="0,1"
android:id="@+id/landenTable"
android:layout_height="wrap_content"
android:layout_width="match_parent">
</TableLayout>

Rekenmodel.javaファイルは次のとおりです。

public class Rekenmodel extends Activity{

TableLayout landenTable;
Data context = Data.GetInstance();
String binnenUwRegio, selectedCountry, buitenUwRegio, naar085Bedrijfsnummers, naar088Bedrijfsnummers, naar0900Servicenummers, overigeGesprekken;
Button b_send, b_addCountry;
Spinner countries;
EditText et_landen_aantalGesprekken, et_landen_bedrag;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.kpn_rekenmodel);
landenTable = (TableLayout) findViewById(R.id.landenTable);
countries = (Spinner) findViewById(R.id.countries);
et_landen_aantalGesprekken = (EditText)this.findViewById(R.id.et_landen_aantalGesprekken);
et_landen_bedrag = (EditText)this.findViewById(R.id.et_landen_bedrag);
b_addCountry = (Button)this.findViewById(R.id.addCountryButton);
b_addCountry.setOnClickListener(addCountryButtonListener);
}

private OnClickListener addCountryButtonListener = new OnClickListener() {

@Override
public void onClick(View v) {
final TableRow tr = new TableRow(Rekenmodel.this);
TextView landKeuze = new TextView(Rekenmodel.this);
landKeuze.setText(countries.getSelectedItem().toString());
landKeuze.setLayoutParams(new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 0.45f));
tr.addView(landKeuze);

Button delete = new Button(Rekenmodel.this);
delete.setLayoutParams(new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 0.05f));
delete.setText("Delete");
delete.setTextSize(10f);
delete.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
landenTable.removeView(tr);
}
});
tr.addView(delete);

TextView aantalGesprekken = new TextView(Rekenmodel.this);
aantalGesprekken.setText(et_landen_aantalGesprekken.getText().toString());
aantalGesprekken.setLayoutParams(new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 0.15f));
tr.addView(aantalGesprekken);

TextView duur = new TextView(Rekenmodel.this);
duur.setText("Test duur");
duur.setLayoutParams(new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 0.20f));
tr.addView(duur);

TextView bedrag = new TextView(Rekenmodel.this);
bedrag.setText(et_landen_bedrag.getText().toString());
bedrag.setLayoutParams(new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 0.15f));
tr.addView(bedrag);

landenTable.addView(tr);
}

};
}

回答:

回答№1は2

あなたはレイアウトパラメタの幅0を設定しています。その理由は、表示が表示されないからです。