2017-02-25 37 views
0

我是新的android工作室,我試圖編寫一個簡單的程序,其中文本「你好世界」出現在屏幕上時,單擊一個按鈕,但是,每次單擊按鈕時程序崩潰。android工作室崩潰的簡單請求

activity_main.xml中:

<?xml version="1.0" encoding="utf-8"?> 
<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="com.example.numsm_000.helloworld.MainActivity"> 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="100dp" 
     android:layout_height="100dp"/> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Click Me!" 
     android:onClick="showMessage" 
     android:id="@+id/button" 
     android:layout_marginLeft="200dp"/> 

</RelativeLayout> 

MainActivity.java:

package com.example.numsm_000.helloworld; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 

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

    } 

    public void showMessage(){ 
     TextView textView = (TextView) findViewById(R.id.text); 
     textView.setText(R.string.app_name); 
    } 

} 
+0

什麼錯誤/你在日誌中看到異常? –

回答

2

View作爲參數傳遞給showMessage()因爲onClick將尋找具有View參數

的方法使 之成爲

public void showMessage(View v){ 
    TextView textView = (TextView) findViewById(R.id.text); 
    textView.setText(R.string.app_name); 
} 

希望它能幫助:)

1

請嘗試以下...

TextView textView = (TextView) findViewById(R.id.text); 

剪切從showMessage(這行代碼),並把它在onCreate()...或者你可以指定查看視圖在你的方法..

+0

我假設他在按鈕點擊事件中調用了showMessage()方法,這是完全正確的 –

+0

它有什麼不同?無論是在oncreate()還是在任何地方,它在使用前已初始化 – Jayanth

+0

是的,但她/他沒有通過查看作爲參數,這就是爲什麼該應用程序崩潰,,, –

2
use following code 


import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity implements View.OnClickListener { 
TextView textView; 
Button btnClickMe; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     textView = (TextView) findViewById(R.id.text); 
     btnClickMe=(Button)findViewById(R.id.button); 
     btnClickMe.setOnClickListener(this); 

    } 


@Override 
    public void onClick(View view) { 
     switch (view.getId()){ 
      case R.id.button: 
     textView.setText(R.string.app_name); 
       break; 

} 
+0

在按鈕上的xml代碼刪除此android:onClick =「showMessage」 –

相關問題