2011-01-08 68 views
1
package com.parseador.prueba; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 

public class main extends Activity { 
    /** Called when the activity is first created. */ 
    //private Button botonParsear; 
    private EditText link; 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     //Button botonParsear = (Button) findViewById(R.id.BotonParsear); 
     //EditText link = (EditText) findViewById(R.id.Link); 
    } 

    public void onParsearClick(View botonParsear) { 
    link.setText("Siii"); 
    } 
} 

你好。Android:按钮Noob问题

我运行此代码时出现问题。它保持FCing。试图改变评论的内容,但没有办法使按钮工作。

如果你能告诉我我做错了什么,我将不胜感激。

在此先感谢。

Ps:xml文件在按钮上有方法。这是它的代码(强大的呼叫):

android:layout_height="wrap_content" 
android:text="@string/parse" 
android:textSize="20sp" 
android:layout_width="wrap_content" 
android:layout_gravity="center" 
android:onClick="onParsearClick" 
android:id="@+id/BotonParsear"
+2

发布LogCat输出,它提供关于强制关闭的信息。没有人会创建一个新项目并在那里转储代码以查看异常... – Axarydax 2011-01-08 20:19:52

+0

之前没有听说过LogCat。将来会随时有用。虽然我得到了解决方案,thx为您的帮助。 – Duqe 2011-01-08 23:06:06

回答

1

该行

EditText link = (EditText) findViewById(R.id.Link); 

几乎就在那里。你正在声明一个新的局部变量link,它会在你的main类中隐藏实例变量link。因此,当您将局部变量分配给位于findViewByIdView实例时,它会超出范围并在onCreate返回后不再存在。由onParsearClick读取的link变量仍然是null,无法解除引用。因此拨打link.setText失败。

更改行,以便它是一个简单的赋值语句,而不是一个变量声明:

link = (EditText) findViewById(R.id.Link); 

您可能要对未来Java的作用域规则,阅读起来。

0

你的榜样(修改)对我的作品......

public void onParsearClick(View botonParsear) { 
    Toast.makeText(this, "it is working", Toast.LENGTH_LONG).show(); 
    } 

看看是否有这个线程适用于你 - onClick won't fire on ImageView

+0

感谢您的帮助。无论如何,请看链接。 – Duqe 2011-01-08 23:08:02