Bir TextView içeren bir LinearLayout var ve her zaman olacak. Her zaman TextView'un altında en az bir düğme bulunacak, ancak belirli durumlarda birden fazla olabilir.XML düzenini şablon olarak kullanarak android düğmeleri oluşturma
Program aracılığıyla gereken sayıda düğmeyi başarıyla oluşturabilir ve ekleyebilirim. Ayrıca, bu düğmeler için programatik olarak gerekli olan görüntü ile ilgili parametreleri/seçenekleri ne olursa olsun başarıyla ayarlayabilirim.
Sorun, program aracılığıyla oluşturulan bir düğmenin, bu parametreleri programsal olarak ayarlamak yerine, görünüm ve düzen parametrelerini içeren bir XML kaynak dosyası kullanması gerektiğini nasıl bileceğimi bilmemesidir.
Benzer şekilde adlandırılmış sorulara baktım ve zamanın API'siyle uğraşarak zaman harcadım.
Düzenleme:
fragman için My XML düzeni dosyası şuna benzerprivate TextView textView;
private SomeObject someObject;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View scrollView = inflater.inflate(R.layout.fragment_play_game, container, false);
textView = (TextView) scrollView.findViewById(R.id.game_data_text);
textView.setText(someObject.getTextForTextView());
LinearLayout layout = (LinearLayout) scrollView.findViewById(R.id.game_data_container);
for (String optionText : someObject.getTextForButtons()) {
layout.addView(createOptionButton(optionText, layout));
}
return scrollView;
}
private View createOptionButton(String optionText, LinearLayout layout) {
Button optionButton = new Button(this.getActivity());
// set button layout/options here, somehow??
optionButton.setText(optionText);
return optionButton;
}
(O da şu: Burada umarım benim için biraz daha net açıklamalar yapacak yapmaya çalışıyorum şeyin bir yaklaşım var
Ben düğmeleri için) ekleyin çalışıyorum LinearLayout: Ben düğmesi için bir XML düzeni dosyası oluşturmak için olmadığımı (Ayrıca
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/game_data_container"
etc... >
<TextView
android:id="@+id/game_data_text"
etc... />
</LinearLayout>
</ScrollView>
bu gibi görünmelidir) diyoruz custom_button.xml sağlar ?:
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/play_game_option_button"
etc... />
Güncelleme: Bu bir
Button optionButton = new Button(this.getActivity());
:
Sadece MrFox @ bahsettiğini üzerinde biraz genişletmek için, almak o çalışma yaptıklarını bu satırı değiştirin oldu
Button optionButton = (Button) inflater.inflate(R.layout.play_game_option_button, layout, false);
. Bu durumda, dosyadaki düğmenin üstünde ebeveyn olmadığından, yalnızca dosyanın bulunduğu dosyanın kök görünümünü döndürür.
Ancak, son boolean değerini (attachToParent) doğru olarak ayarlamış olsaydım, düğmenin içinde bulunduğu kök kabını (bu yalnızca çağrıya geçirilen 'düzen' değişkeni) döndürmüş olurdu. .
Şimdi bu şablonu kullanmak istediğim kadar düğme üretebilirim.
teşekkürler cevap için, ben senin düşündüren ne uğraşırken denedim ama ben gerçekten anlamıyorum Önerilerinizi nasıl uygulayacağınız. Orijinal sorumu daha fazla bilgi ile güncelledim. – Rob
siz ve ben hem –
hem de Cevapımı genişletmek için @Rob'a teşekkürler! –