私は最初のアンドロイドアプリを開発中で、何らかのトラブルに遭遇しました。私は以前のアクティビティからArrayListを取り込み、リスト内の各項目のボタンを作成する新しいアクティビティを開始しようとしています。私は他の多くのスタックオーバーフローポストを見てみましたが、それらのどれもが私の問題を解決するのに役立っていません。Androidアプリは動的に作成されたボタンをすべて同じ場所に表示します
私は多くの異なる戦略を試してみました、そして私のコードは以下のように現在:
public class VideoMenu extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_menu);
Bundle b = getIntent().getExtras();
ArrayList<String> videos = b.getStringArrayList("videos");
setContentView(R.layout.activity_video_menu);
for(int i=0;i<videos.size();i++){
Button myButton = new Button(this);
myButton.setText(videos.get(i));
myButton.setId(i);
RelativeLayout ll = (RelativeLayout)findViewById(R.id.videos);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
if (i != 0) {
lp.addRule(RelativeLayout.END_OF, i - 1);
}
myButton.setLayoutParams(lp);
ll.addView(myButton,lp);
}
}
}
とXMLコード:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/videos"
android:layout_alignParentBottom="true"
android:layout_alignWithParentIfMissing="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="vertical">
これはうまくコンパイルすべてのボタンがお互いの上に表示されます。コード提案がうまくいく理由を記入していただければ幸いです。私はこれについての詳細を学ぶしたいと思います:)
編集:固定タイプミス
アンドロイドのListViewを使用して問題を解決することができます。http://www.vogella.com/tutorials/AndroidListView/article.htmlのようなGoogleで多くのチュートリアルを見つけることができます。スクロールやonClickイベントの処理が簡単になります。 – Swapnil