2011-01-08 69 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