2013-11-23 5 views
0

두 활동 사이를 전환 할 수 없습니다. button2을 클릭하면 응용 프로그램이 다운됩니다.인 텐트가 작동하지 않습니다. button2를 클릭하면 응용 프로그램이 충돌합니다.

MainActivity.Java

<pre>package com.example.againtry; 

    import java.util.Random; 

    import android.app.Activity; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.view.Menu; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.TextView; 

    public class MainActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     // Declare our View Variables and assign them the Views from the layout file 

     final TextView answerLabel = (TextView) findViewById(R.id.textView1); 
     Button getAnswerButton = (Button) findViewById(R.id.button1); 

     getAnswerButton.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
    // The Button was clicked, so the update the answer label with an answer 

     String answer = ""; 
    // Randomly select one of three answers: Yes, No or May be 

    // Update the label with our dynamic answer 

    Random randomGenerator = new Random(); // Construct a new Random number Generator 
    int randomNumber = randomGenerator.nextInt(3); 
    answer = Integer.toString(randomNumber); 
    // update the label with our dynamic answer 

    answerLabel.setText(answer); 
    }}); 

     Button btnSimple= (Button) findViewById(R.id.button2); 
     btnSimple.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

    // From One Activity to another 
    Intent intent = new Intent(MainActivity.this, SendMessageActivity.class); 
    startActivity(intent); 

    }}); 
    } 



    @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 true; 
    }}</pre> 

SendMessageActivity (즉 send_message.xml)의 레이아웃, 당신은 "button1"ID와 아무 버튼이없는에서 내 두 번째 활동

SendMessageActivity.Java 
<pre>package com.example.againtry; 

    import android.app.Activity; 
    import android.os.Bundle; 
    import android.telephony.SmsManager; 
    import android.view.Menu; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.Toast; 

    public class SendMessageActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.send_message); 

     final EditText editSMS = (EditText) findViewById(R.id.editText1); 
     final EditText editPhoneNum = (EditText) findViewById(R.id.phoneNum); 
     Button getSendButton = (Button) findViewById(R.id.button1); 



     getSendButton.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
    String phoneNo = editPhoneNum.getText().toString(); 
    String sms = editSMS.getText().toString(); 

    try { 
    SmsManager smsManager = SmsManager.getDefault(); 
    smsManager.sendTextMessage(phoneNo, null, sms, null, null); 
    Toast.makeText(getApplicationContext(), "SMS Sent!", 
    Toast.LENGTH_LONG).show(); 
    } catch (Exception e) { 
    Toast.makeText(getApplicationContext(), 
    "SMS faild, please try again later!", 
    Toast.LENGTH_LONG).show(); 
    e.printStackTrace(); 
    } 

    } 
    }); 

    } 


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


Manifest 
    <pre> <?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.againtry" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="10" 
     android:targetSdkVersion="10" /> 
    <uses-permission android:maxSdkVersion="10" android:name="android.permission.READ_CONTACTS"/> 
    <uses-permission android:maxSdkVersion="10" android:name="android.permission.SEND_SMS"/> 
    <uses-permission android:maxSdkVersion="10" android:name="android.permission.READ_SMS"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.againtry.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.example.againtry.SendMessageActivity" 
      android:label="@string/title_activity_send_message" > 
     </activity> 
    </application> 

    </manifest></pre> 

activity_main<pre> 

    <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:gravity="bottom" 
    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" > 

    <Button 
     android:id="@+id/button1" 
     style="@android:style/ButtonBar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/textView1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="70dp" 
     android:text="Enlighten Me!" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="177dp" 
     android:textSize="32sp" /> 

     <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/button1" 
     android:layout_alignLeft="@+id/button1" 
     android:layout_marginBottom="44dp" 
     android:text="Message" /> 

    </RelativeLayout></pre> 

send_message.xml<pre> 

    <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=".SendMessageActivity" > 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:ems="10" 
     android:hint="Enter your message" > 

     <requestFocus /> 
    </EditText> 

    <Button 
     android:id="@+id/sendButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/editText1" 
     android:layout_alignBottom="@+id/editText1" 
     android:layout_alignParentRight="true" 
     android:text="@string/button_send" /> 

    <TextView 
     android:id="@+id/messageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/editText1" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="77dp" 
     android:text="TextView" /> 

    <EditText 
     android:id="@+id/phoneNum" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/messageView1" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="18dp" 
     android:text="Enter Phone Number" android:inputType="number"/> 
    </RelativeLayout></pre> 
+1

stacktrace 게시하시기 바랍니다. –

답변

1

입니다. 그래서 할 때 :

Button getSendButton = (Button) findViewById(R.id.button1); 

findViewById 반환 null 따라서 getSendButton.setOnClickListener(/***/);NullPointerException 발생합니다.

그것은해야한다 :

Button getSendButton = (Button) findViewById(R.id.sendButton); 
0

당신은 내가 당신의 activity_main XML의 보이지 않는 특정 버튼에 onclick을 할당해야합니다.

버튼에 onclick 이벤트를 추가하고 onclicklistener를 제거하면 제대로 작동합니다.

onclick 수신기를 추가하려면 디자이너 페이지로 이동하고 속성에서 onclick.Just 드롭 다운을 사용하여 해당 태그에 onlick 메서드를 지정하십시오.

0

제어 매핑 실수 SendMessageActivity에

public class SendMessageActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.send_message); 

    final EditText editSMS = (EditText) findViewById(R.id.editText1); 
    final EditText editPhoneNum = (EditText) findViewById(R.id.phoneNum); 
    Button getSendButton = (Button) findViewById(R.id.button1); 

대신 단추 1 그것이 있어야 R.id.있다 sendButton

관련 문제