2011-01-08 2 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"); 
    } 
} 

Hello.Android: проблема с Noob с кнопкой

Ive проблема, когда я запускаю этот код. Он держит FCing. Попробовали изменить что-то о комментариях, но theres не способ заставить кнопку работать.

Я был бы признателен, если бы вы могли сказать мне, что я делаю неправильно.

Заранее спасибо.

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

+0

Не слышал о LogCat раньше. Будет полезно в любое время в будущем. Хотя я получил решение, THX за вашу помощь. – Duqe

ответ

1

Линия

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

почти есть. Вы объявляете новую локальную переменную link, которая затеняет переменную экземпляра link в вашем классе main. Поэтому, когда вы назначаете локальную переменную в экземпляр View, расположенный по адресу findViewById, он выходит из сферы действия и прекращает свое существование после возврата onCreate. Переменная link, прочитанная onParsearClick, по-прежнему null и не может быть разыменована. Поэтому вызов link.setText не выполняется.

Измените строку, так что это просто оператор присваивания, а не объявление переменной:

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

Вы можете прочитать о правилах определения объема Java на будущее.

+0

Вы поняли! Это была проблема. Большое спасибо за вашу помощь! – Duqe

0

Ваш пример (модифицированный) работает для меня ...

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

Смотрите, если любой из этой нити относится к вам - onClick won't fire on ImageView

+0

Спасибо за вашу помощь. В любом случае, взгляните на ссылку. – Duqe

Смежные вопросы