2014-01-12 4 views
0

Итак, я пошел на Android Tutorials на developer.android.com, чтобы создать свое первое приложение. Поэтому, чтобы создать простой пользовательский интерфейс, я добавил в учебник кнопку и текстовое поле. Но когда я запускаю его на своем телефоне, я не вижу кнопки или текстовое поле.Невозможно добавить кнопки и текстовые поля в приложение для Android.

package com.example.lookforbuttons; 
    import android.os.Bundle; 
    import android.app.Activity; 
    import android.view.Menu; 
    import android.widget.TextView; 

    public class MainActivity extends Activity { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 

      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      TextView tv= new TextView(this); 
      tv.setText("Buttons"); 
      setContentView(tv); 
     } 
    } 

.xml в файл, в котором я описываю макет это:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout 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:orientation="horizontal"> 
     <EditText android:id="@+id/edit_message" 
      android:layout_weight="1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:hint="@string/edit_message" /> 
     <Button android:id="@+id/send" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/button_send" /> 
    </LinearLayout> 

и strings.xml выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
     <string name="app_name">Buttons</string> 
     <string name="edit_message">Enter a message</string> 
     <string name="button_send">Send</string> 
     <string name="action_settings">Settings</string> 
     <string name="title_activity_main">MainActivity</string> 
    </resources> 

Мишень андроид версия 4,03, так как я Я тестирую его на телефоне 4.03. Когда я запускаю это, я печатаю только «Кнопки», а не кнопку или текстовое поле. Благодарю.

ответ

0

Вы звоните setContentView дважды. Когда вы это сделаете, второй раз - это то, что вы увидите на экране, потому что оно будет перезаписывать то, что вы вызывали при первом вызове setContentView(). И так как вы звоните

setContentView(tv); 

последнее, что у вас есть только TextView. Удалите эту строку, и вы должны увидеть свой EditText и ваш Button.

0

В вашем коде вы устанавливаете setContentview() дважды. Это означает, что вы меняете layout, который содержит Button и TextView со вторым setContentview(). Если вы хотите динамически добавить новый TextView в ваш layout. Удалите второй setContentView() и назначьте id вашему LinearLayout в xml. Затем найдите его в коде Java и скажите linearlayout.add(textview)

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/lv" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal"> 
    <EditText android:id="@+id/edittext" 
     android:layout_weight="1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="@string/edit_message" /> 
    <Button android:id="@+id/send" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/button_send" /> 
</LinearLayout> 


Linearlayout lv=(Linearlayout) findViewById(R.id.lv); 
lv.add(textview); 
Смежные вопросы