2013-07-02 3 views
1

Я создал пользовательский TextView, и я хочу добавить эти TextViews динамически в определенную позицию, например, под EditText. Может кто-нибудь сказать мне, как это сделать? Я хочу добавить свой пользовательский textView динамически через java, а не XML, как использовать addView() для этого? enter image description hereдобавление пользовательского TextView в определенном положении?

Часть XML (как мой файл XML является очень большим размером):

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mainStaffScrollView" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

<!-- buttons,spinners,edittexts etc--> 

<Button 
    android:id="@+id/specialisationStaffSpinner" 
    style="?android:attr/spinnerStyle" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_marginTop="5dp" 
    android:gravity="left|center_vertical" 
    android:text="@string/names" /> 

<!-- here i want to add my custom view--> 

</LinearLayout> 
</ScrollView> 
+0

Это может быть сделано, но вы хотите опубликовать более подробная информация о существующем макете. Это LinearLayout? RelativeLayout? Если это исходит из XML, можете ли вы разместить xml? – Martin

+2

введите пустой макет в том месте, где вы хотите добавить пользовательский текст. Получите этот макет в свою активность по его идентификатору .. и добавьте пользовательский текст в пустой макет, который вы определяете в xml. ....... – Aarun

ответ

1

Вы можете добавить пустой LinearLayout в том месте, где вы хотите вставить свой собственный TextView, затем ссылаться на него в коде Java, а затем использовать addView() на LinearLayout. Удачи! :)

+0

Это выглядит хорошо, позвольте мне попробовать –

0

использовать относительный макет в качестве родителя он дает вам силу, чтобы достичь того, что вы хотите создать Params макета и использовать функцию addRule

как этот

RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     lp.addRule(RelativeLayout.BELOW, ButtonId); 

     adsLayout.setLayoutParams(lp); 
3
  • поставить пустой макет в том месте, где вы хотите добавить пользовательские TextView
  • получить этот макет в вашу деятельность по его идентификатору
  • и добавить пользовательские TextView в пустой макет, который вы определяете в XML
0

Вы можете сделать это легко в 3-х шагах, если вы используете RelativeLayout.

  1. Убедитесь, что верхняя и нижняя кнопки имеют действительные идентификаторы.

  2. Инициализировать и указать местоположение с помощью RelativeLayout.LayoutParams.

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.BELOW, topButton.getId()); params.addRule(RelativeLayout.ABOVE, bottomButton.getId());

3.Add вид.

targetContainer.addView(customTextView, params); 

Это будет труднее без RelativeLayout.

+0

Я не использую относительный макет, у меня есть xml в комплекте с линейным макетом –

+2

Если вы знаете перед собой, где вам нужно добавить пользовательские текстовые изображения, используйте ответ R4chi7. – Stormbringer

0

попробовать этот путь

LinearLayout linearLayout = (LinearLayout) findViewById(R.id.mylayout) 
TextView txt1 = new TextView(this, R.drawable.customexml); 
linearLayout.addView(txt1); 
+0

это не будет добавлять представление, как показано на картинке ... Я пробовал это раньше –

0

Просто сделайте редактирования текста ушел, чтобы начать с, найти ссылки в коде и обновить его и установить его видимость View.VISIBLE

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mainStaffScrollView" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

<!-- buttons,spinners,edittexts etc--> 

<Button 
    android:id="@+id/specialisationStaffSpinner" 
    style="?android:attr/spinnerStyle" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_marginTop="5dp" 
    android:gravity="left|center_vertical" 
    android:text="@string/names" /> 

    <View 
    android:visiblity="gone" 
    android:id="+id/customView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    </View> 


</LinearLayout> 
</ScrollView> 
Смежные вопросы