2014-06-09 3 views
0

это звучит легко в начале, но меня сбивает с ума.Проблемы с Android TextView

Так я скачал последнюю версию Android SDK и затмить и теперь есть Somthing нового ....:

при РМКО создании активности и макета он генерирует меня 2 раскладки Somthing как: main_laout.xml и fragment_main .xml

однако eclipse открывал только файл фрагмента, и я сделал свой графический интерфейс там. Когда я запускаю приложение, все мои кнопки и TextViews есть. I Нажмите кнопку, и начнется второе действие.

А вот моя проблема: Вторая активность, как первый (2 макета XML-файлов, но здесь называется статусом)

когда IAM пытается изменить TextView там я получаю исключение NullPointer. Может ли кто-нибудь помочь мне с этим iam, сумасшедшим.

Мой код до сих пор:

statusActivity:

public class StatusActivity extends ActionBarActivity{ 

private TextView version,dbstatus,dbrows; 
private Button done,refresh; 
NetworkTask task; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_status); 

    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()).commit(); 
    } 



    version=(TextView) findViewById(R.id.versionsOutputTextSTATUS); 
    dbstatus=(TextView) this.findViewById(R.id.dbstatusOutputTextSTATUS); 
    dbrows=(TextView) this.findViewById(R.id.dbRowsOutputTextSTATUS); 

    done=(Button) this.findViewById(R.id.beendenButtonSTATUS); 
    refresh=(Button) this.findViewById(R.id.refreshButtonSTATUS); 

    version.setText("Test"); 

} 

И мои XML файлы: activity_status.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/container" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="de.project.zigbeecontrol.StatusActivity" 
tools:ignore="MergeRootFrame" /> 

fragment_status.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:background="@drawable/eisblumen" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="de.project.zigbeecontrol.StatusActivity$PlaceholderFragment" > 

<TextView 
    android:id="@+id/welcomeTextSTATUS" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="43dp" 
    android:text="@string/status" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/versionsOutputTextSTATUS" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/versionTextSTATUS" 
    android:layout_alignBottom="@+id/versionTextSTATUS" 
    android:layout_marginLeft="24dp" 
    android:layout_toRightOf="@+id/versionTextSTATUS" 
    android:text="@string/empty" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<TextView 
    android:id="@+id/dbstatusOutputTextSTATUS" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/dbstatusTextSTATUS" 
    android:layout_alignLeft="@+id/versionsOutputTextSTATUS" 
    android:text="@string/empty" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<Button 
    android:id="@+id/beendenButtonSTATUS" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/welcomeTextSTATUS" 
    android:layout_alignParentBottom="true" 
    android:layout_alignRight="@+id/welcomeTextSTATUS" 
    android:background="@drawable/button_trans" 
    android:text="@string/endeStatus" 
    android:onClick="onClickStatus" /> 

<TextView 
    android:id="@+id/dbRowsTextSTATUS" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/beendenButtonSTATUS" 
    android:layout_alignRight="@+id/dbstatusTextSTATUS" 
    android:layout_marginBottom="26dp" 
    android:text="@string/dbrows" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<TextView 
    android:id="@+id/dbstatusTextSTATUS" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" 
    android:layout_toLeftOf="@+id/beendenButtonSTATUS" 
    android:text="@string/datenbankstatus" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<TextView 
    android:id="@+id/versionTextSTATUS" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignRight="@+id/dbstatusTextSTATUS" 
    android:layout_below="@+id/welcomeTextSTATUS" 
    android:layout_marginTop="56dp" 
    android:text="@string/version" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<TextView 
    android:id="@+id/dbRowsOutputTextSTATUS" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/dbRowsTextSTATUS" 
    android:layout_alignBottom="@+id/dbRowsTextSTATUS" 
    android:layout_alignLeft="@+id/dbstatusOutputTextSTATUS" 
    android:text="@string/empty" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<Button 
    android:id="@+id/refreshButtonSTATUS" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/welcomeTextSTATUS" 
    android:layout_marginBottom="17dp" 
    android:layout_marginLeft="31dp" 
    android:layout_toRightOf="@+id/welcomeTextSTATUS" 
    android:text="@string/refresh" 
    android:onClick="onClickStatus" /> 

</RelativeLayout> 

, даже если его работы я выкладываю части «главной» программе тоже, так что вы можете увидеть, как я работал там: MainActivity:

public class MainActivity extends ActionBarActivity{ 


//Buttons 
private Button beendenButton; 
private Button statusbutton; 
private Button restartButton; 
private Button auswertungButton; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()).commit(); 
    } 

    /*Zuweißung der Buttons */ 
    beendenButton=(Button) this.findViewById(R.id.endButtonMAIN); 
    statusbutton=(Button) this.findViewById(R.id.statusButtonMAIN); 
    restartButton=(Button) this.findViewById(R.id.restartButtonMAIN); 
    auswertungButton=(Button)this.findViewById(R.id.auswertungButtonMAIN); 



    /*Fertig mit initzialisieren warten auf Eingabe*/ 
} 
    private void statusMethod() { 

    try{ 

     Intent intent = new Intent(this, StatusActivity.class); 
     startActivity(intent); 
     this.finish(); 
     }catch(Exception e){errorMessage();} 

} 
//.... Some uninterresting Stuff here 

public void onClick(View v) 
{ 
    switch (v.getId()) 
    { 
     /*Auswahl was gedrückt wurde und aufruf der Entsprechenden Methode */ 
     case R.id.endButtonMAIN: endActivity(); break; 
     case R.id.statusButtonMAIN: statusMethod();break; 
     case R.id.restartButtonMAIN: restartMethod();break; 
     case R.id.auswertungButtonMAIN: sensorMethod(); break; 
     default: break; 
    } 
} 

}

И два XMLs из макета:

activity_main:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/container" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="de.project.zigbeecontrol.MainActivity" 
tools:ignore="MergeRootFrame" 

/> 

и последнее, но не в последнюю очередь fragment_main:

<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:background="@drawable/eisblumen" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="de.project.zigbeecontrol.MainActivity$PlaceholderFragment" > 

<Button 
    android:id="@+id/endButtonMAIN" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@+id/welcomeTextMAIN" 
    android:background="@drawable/button_trans" 
    android:text="@string/beenden" 
    android:onClick="onClick" /> 

<TextView 
    android:id="@+id/welcomeTextMAIN" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/endButtonMAIN" 
    android:layout_centerHorizontal="true" 
    android:text="@string/welcome" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<Button 
    android:id="@+id/statusButtonMAIN" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/welcomeTextMAIN" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="39dp" 
    android:background="@drawable/button_trans" 
    android:text="@string/status" 
    android:onClick="onClick" /> 

<Button 
    android:id="@+id/restartButtonMAIN" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/statusButtonMAIN" 
    android:layout_below="@+id/statusButtonMAIN" 
    android:layout_marginTop="19dp" 
    android:background="@drawable/button_trans" 
    android:text="@string/neustart" 
    android:onClick="onClick" /> 

<Button 
    android:id="@+id/auswertungButtonMAIN" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/restartButtonMAIN" 
    android:layout_below="@+id/restartButtonMAIN" 
    android:layout_marginTop="33dp" 
    android:background="@drawable/button_trans" 
    android:text="@string/sensoren" 
    android:onClick="onClick" /> 

</RelativeLayout> 

Так PLZ! почему я получаю NPE при попытке:

version.setText("Test"); 

С уважением

+0

где 'activity_status.xml' –

ответ

0

Попробуйте это ..

Изменить это ..

setContentView(R.layout.activity_status); 

к

setContentView(R.layout.fragment_status); 

, потому что TextViewButton с и s находятся в fragment_status.xml так setContentView должны относиться fragment_status.xml

и удалить

if (savedInstanceState == null) { 
    getSupportFragmentManager().beginTransaction() 
      .add(R.id.container, new PlaceholderFragment()).commit(); 
} 

Ans же как и в MainActivity.java

Изменить это ..

setContentView(R.layout.activity_main); 

в

setContentView(R.layout.fragment_main); 

и удалить

if (savedInstanceState == null) { 
    getSupportFragmentManager().beginTransaction() 
      .add(R.id.container, new PlaceholderFragment()).commit(); 
} 
+0

спасибо много это работало именно так, как я хотел :) – Angl0r

+0

@ Angl0r Рад, что помог. Счастливое кодирование. – Hariharan

0

Вот ваша проблема

setContentView(R.layout.activity_status); 

, но ваш текстовый вид отсутствует в activity_status.xml. Создайте Представления в activity_status.xml вместо fragment_status.xml и удалить

if (savedInstanceState == null) { 
    getSupportFragmentManager().beginTransaction() 
      .add(R.id.container, new PlaceholderFragment()).commit(); 
} 
Смежные вопросы