应用程序意外停止。请尝试在我的Android代码再次“强制关闭”的错误

问题描述:

我在Eclipse中写了下面的代码为Android:应用程序意外停止。请尝试在我的Android代码再次“强制关闭”的错误

package mohammad.negahdari.mystartup4; 

import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MyStartup4Activity extends Activity { 

    public int counter; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    final TextView txtCaption = (TextView) findViewById(R.id.txtCaption); 
    final Button btn1 = (Button) findViewById(R.id.txtCaption); 
    txtCaption.setText("Hooora"); 
    txtCaption.setTextColor(Color.parseColor("#0000ff")); 
    txtCaption.setBackgroundColor(Color.parseColor("#ffffff")); 
    for (int i = 0; i <= 4; i++) 
     Toast.makeText(MyStartup4Activity.this, "Mohammad " + i, Toast.LENGTH_SHORT).show(); 
    txtCaption.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      Log.i("LOG", "Clicked"); 
      Toast.makeText(MyStartup4Activity.this, "Clicked", Toast.LENGTH_SHORT).show(); 
      counter++; 
      txtCaption.setText("Number is : " + counter); 
     } 
    }); 

    btn1.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      Log.i("LOG", "Clicked"); 
      Toast.makeText(MyStartup4Activity.this, "Clicked", Toast.LENGTH_SHORT).show(); 
      txtCaption.setVisibility(View.GONE); 
     } 
    }); 

    } 
} 

,并收到此错误:

The application has stopped unexpectedly. please try again

但是当我删除这些行:

btn1.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      Log.i("LOG", "Clicked"); 
      Toast.makeText(MyStartup4Activity.this, "Clicked", Toast.LENGTH_SHORT).show(); 
      txtCaption.setVisibility(View.GONE); 
     } 
    }); 

我没有错误。

我的XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 


    <TextView 
    android:id="@+id/txtCaption" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="#ff00ff" 
    android:gravity="center" 
    android:text="..." 
    android:textColor="#00ff00" 
    android:textSize="40dip" /> 

    <Button 
     android:id="@+id/btn1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" /> 

</LinearLayout> 
+0

你的日志中有什么错误? –

+2

使用Android Studio代替Eclipse。 –

+1

使用'final Button btn1 =(Button)findViewById(R.id.btn1);'。请看下面的@JohnJoe答案。 –

The application has stopped unexpectedly. please try again But when I delete these lines: have no error.

很显然,你是指到错误的ID

final TextView txtCaption = (TextView) findViewById(R.id.txtCaption); 
final Button btn1 = (Button) findViewById(R.id.txtCaption); 

检查button ID XML格式。您应该为您的button分配不同的ID。

在你的情况,你应该使用

final Button btn1 = (Button) findViewById(R.id.btn1); 
+1

非常感谢你 –

我的XML代码:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

    <TextView 
     android:id="@+id/txtCaption" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="#ff00ff" 
     android:gravity="center" 
     android:text="..." 
     android:textColor="#00ff00" 
     android:textSize="40dip" /> 

    <Button 
     android:id="@+id/btn1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button" /> 

</LinearLayout> 

final TextView txtCaption = (TextView) findViewById(R.id.txtCaption); 
final Button btn1 = (Button) findViewById(R.id.txtCaption); 

两个txtCaption和BTN1指向同一个ID(R.id.txtCaption)

+0

非常感谢你 –