2017-04-15 5 views
-2

버튼을 눌렀을 때 나타나는 아주 간단한 자바 토스트를 만들었습니다. 하지만 휴대 전화로 실행하면 앱이 중지되고 오류없이 종료됩니다. 나는 무엇을 잘못 했는가?토스트를 시작하려면 버튼을 누르면 Java-app가 닫힙니다. 하지만 왜?

MainActivity :

package com.example.ras.tests; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast; 

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


    } 

    public void buttonWasClicked(View Button) { 
     Toast.makeText(this , "Button wurde geklickt!" , Toast.LENGTH_SHORT).show(); 
    } 
} 

버튼 :

<Button 
    android:text="Button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/button" 
    android:layout_marginTop="16dp" 
    app:layout_constraintTop_toTopOf="@+id/activity_main" 
    android:layout_marginStart="16dp" 
    app:layout_constraintLeft_toLeftOf="@+id/activity_main" 
    android:layout_marginLeft="16dp" 
    android:onClick="buttonWasClicked (MainActivity)" 
    android:visibility="visible" /> 
</android.support.constraint.ConstraintLayout> 
+1

질문을 작성하고 logcat을 추가하십시오. –

+1

"왜?"와 관련된 질문. 좋은 질문이 아닙니다. [좋은 질문을하는 법을] ​​읽어주세요. (https://stackoverflow.com/help/how-to-ask) – Omore

답변

0

간단한 방법 : xml의 android:onClick="buttonWasClicked"이 트릭을 수행해야합니다. 아니면 한 OnCreate 방법이처럼 버튼에 리스너를 할당 할 수

final Button button = (Button)findViewById(R.id.button); 
button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       buttonWasClicked(button); 
      } 
     }); 

당신이 안드로이드 삭제이 경우 : 당신의 XML에서의 OnClick을. 그리고 이벤트를 더 잘 수행 할 수 있습니다. 메서드의 buttonWasClicked에서 매개 변수보기 단추를 제거하면 최종 변수를 선언하지 않아도됩니다.

+0

덕분에 정말 많이 감사했습니다! – ramsanx

0

은 "(MainActivity)"안드로이드에서 제거해보십시오 : XML 파일에서 온 클릭합니다.

+0

대단히 감사합니다! 그것은 – ramsanx