2013-11-25 3 views
-2

이클립스를 사용하여 Android 용 프로그램을 만들고 있습니다. 주요 활동에 대한간단한 프로그램 강제 종료

package com.example.changeme; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

    Button set = (Button)findViewById(R.id.set); 
    TextView out = (TextView)findViewById(R.id.out); 
    EditText in = (EditText)findViewById(R.id.input); 

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

     set.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       setcontent(); 
      } 
     }); 
    } 
    public void setcontent() 
    { 
     String con = in.getText().toString(); 
     out.setText(con); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return false; 
    } 

} 

레이아웃 : 여기 MainAcitvity.java 내 코드는 내 N4에 프로그램을 실행할 때 충돌

<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: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=".MainActivity" > 

<TextView 
    android:id="@+id/out" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/set" 
    android:layout_alignParentBottom="true" 
    android:layout_marginBottom="37dp" 
    android:text="@string/Change" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<Button 
    android:id="@+id/set" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/input" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="18dp" 
    android:text="@string/Set" /> 

<EditText 
    android:id="@+id/input" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="37dp" 
    android:ems="10" 
    android:inputType="textPersonName" /> 

. 그렇지 않으면 findViewByIdnull를 반환합니다, 당신의 요소를 검색하고 따라서 라인 set.setOnClickListener(/**/);이 앱 충돌을 NullPointerException 발생합니다 전에

+0

어떤 시점에서 충돌이 발생합니까? 충돌 로그가 있습니까? 악의적 인 코드 제거를 시도 했습니까? – Mark

+0

일단 앱을여십시오! 로그를 찾을 수있는 위치를 모르겠다! – user3033693

답변

1

당신은 레이아웃 팽창 할 필요가있다.

Button set; 
TextView out; 
EditText in; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); //<-- the layout is inflated, i.e it's rendered 

    /******************************************************/ 
    //Now you can retrieve your elements from this layout 
    set = (Button)findViewById(R.id.set); 
    out = (TextView)findViewById(R.id.out); 
    in = (EditText)findViewById(R.id.input); 
    /*****************************************************/ 

    set.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      setcontent(); 
     } 
    }); 
} 
+0

어리석은 나를! 그러나 일하는 힘은 시작에 한 번 닫힌다! !!!! 나는 그것이 대처하는 것을 wile 제거했다고 생각한다 !!! – user3033693