2010-09-29 5 views
0

Я новичок в платформе android, я хотел бы установить текст с помощью текстовых просмотров, я попытался написать набор текста в два текстовых изображения, но его просто рисует один текст, почему? Я не могу сделать два TextViewsAndroid: рисовать много текстовых просмотров

TextView tv1; 
TextView tv2; 

@Override 

public void onCreate(Bundle savedInstanceState) 

{ 

    super.onCreate(savedInstanceState); 

    layout = new LinearLayout(this); 

    tv1 = new TextView(this); 

    tv2 = new TextView(this); 
    tv1.setText("Hello"); 

    tv2.setText("How are you?"); 

} 

ответ

4

На Android, пользовательский интерфейс, как правило, должны быть созданы с помощью XML-файлов, а не Java кода. Вы должны прочитать на учебники по android.com, особенно:

http://developer.android.com/guide/topics/ui/declaring-layout.html

Пример:

В вашем Рез/макет/main.xml, вы определяете текст TextView'S:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView android:id="@+id/TextView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="TextView 1"/> 
<TextView android:id="@+id/TextView2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="TextView 2"/> 
</LinearLayout> 

Затем, если вы используете setContentView в своей деятельности, чтобы показать это, приложение покажет TextView-х:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.setContentView(R.layout.main); 
} 

Если вы хотите, чтобы программно задать текст в деятельности, просто используйте findViewById():

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.setContentView(R.layout.main); 
    ((TextView)this.findViewById(R.id.TextView1)).setText("Setting text of TextView1"); 
} 
+0

Так как я могу нарисовать много переменных? –

+0

Я добавил пример, но серьезно, посмотрю документацию на Android, у них есть большой набор примеров и ресурсов. Мир Android UI сначала немного странный, если вы работаете в других средах. – TuomasR

1

Я определенно второе предложение TuomasR, чтобы использовать макеты XML. Однако, если вы хотите динамически добавлять новые TextViews (т. Е. Вы не знаете, сколько вам потребуется до выполнения), вам нужно сделать несколько других шагов к тому, что вы делаете:

Сначала определите ваш LinearLayout в main.xml (это просто легче, что путь, чем LayoutParams, IMO):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/my_linear_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
/> 

Теперь вы можете перейти к коду, и попробуйте следующее:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    //This inflates your XML file to the view to be displayed. 
    //Nothing exists on-screen at this point 
    setContentView(R.layout.main); 

    //This finds the LinearLayout in main.xml that you gave an ID to 
    LinearLayout layout = (LinearLayout)findViewById(R.id.my_linear_layout); 

    TextView t1 = new TextView(this); 
    TextView t2 = new TextView(this); 

    t1.setText("Hello."); 
    t2.setText("How are you?"); 

    //Here, you have to add these TextViews to the LinearLayout 
    layout.addView(t1); 
    layout.addView(t2); 

    //Both TextViews should display at this point 
} 

Опять же, если вы заранее знайте, сколько мнений вам нужно, USE XML.

Смежные вопросы