ユーザーが連絡先を保存および保存できるアプリを作成しようとしています。保存できますが、リストに問題があります。
データベースを介して実行され、各連絡先 (各行)、画像 (実際にはパスを渡すため文字列)、および文字列の一連のデータを出力する for ループがあります。連絡先ごとに線形レイアウトでスクロールビューに印刷します(各連絡先には独自の線形レイアウトがあるため、1つの連絡先をそれぞれ行に配置できます)。画像は出てきますが、テキストビューはどこにもありません。
log.d(textview.getText()); の使用 テキストビューが作成され、スペースを占有していることを確認します。 http://chesnutcase.heliohost.org/derpbox/itv1.png 名前付きの 2 つの「連絡先」。印刷されていません。間のスペースは、おそらくテキストビューによるものです。 http://chesnutcase.heliohost.org/derpbox/itv2.png 別の 2 つの「連絡先」ですが、名前はありません。お互いの間にスペースを入れないでください。または、少なくとも、かなり小さいスペースです。コード:
DatabaseHandler db = new DatabaseHandler(this);
int a = (int) (long) db.countRows();
LinearLayout theLayout = (LinearLayout)findViewById(R.id.contactsList);
for(int i = 0;i<a;i++){
ImageButton image = new ImageButton(this);
int density=getResources().getDisplayMetrics().densityDpi;
LinearLayout.LayoutParams vp = new LinearLayout.LayoutParams(density,density, 0.5f);
image.setLayoutParams(vp);
image.setScaleType(ImageView.ScaleType.FIT_END);
int b = a - i;
try {
image.setImageBitmap(decodeUri(Uri.parse(db.getContactData("photo_path")[i])));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
theLayout.addView(image);
TextView tv = new TextView(this);
tv.setText(db.getContactData("name")[i]);
Log.d("UserLog","name is " + db.getContactData("name")[i]);
Log.d("UserLog","textfield contains " + tv.getText());
LinearLayout.LayoutParams vp2 = new LinearLayout.LayoutParams(0,0,1f);
tv.setLayoutParams(vp2);
tv.setBackgroundColor(Color.RED);
theLayout.addView(tv);
}
解決策はありますか?前もって感謝します