Button.setOnClickListener (это); ошибка

1

Это код:

package com.elfapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

    private Button btn_Login;
    private EditText et_UserName;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        btn_Login = (Button)findViewById(R.id.button_login);
        btn_Login.setOnClickListener(this);

        et_UserName = (EditText)findViewById(R.id.editText_userName);

        setContentView(R.layout.main);
    }

    public void onClick(View v) {
        if (v.equals(btn_Login)) {
                // skriver ut en toast när man klickar på knappen
            //Toast.makeText(MainActivity.this, "Ansluter till server...", Toast.LENGTH_SHORT).show();

                // används i debuggern för att påvisa att programmet exekverat hit
            //Log.v("ThisApp", "onClick Successful");

                // TODO skickar det som står i et_UserName till controller (genom TCP/IP), som ska kolla om användaren finns
            Intent intent = new Intent(this, goListView);
            this.startActivity(intent);
        }
    }

}

Программа выходит из строя, когда я достигаю оператора btn_Login.setOnClickListener(this);, и у меня нет большой информации о том, что делать.. (не используется для отладчика Eclipse..)

  • 1
    Можете ли вы показать нам вывод журнала cat?
Теги:

3 ответа

5
Лучший ответ

Переместите вызов setContentView(R.layout.main) до инициализации вашей кнопки. Это должно помочь. Удачи!

5

Попробуйте следующее: поместите setContentView(R.layout.main) выше btn_Login = (Button)findViewById(R.id.button_login);

Я думаю, это решит вашу проблему. Попробуйте

  • 0
    Вы были быстрее! знак равно
  • 0
    Спасибо Розали, это работает сейчас! :) Я должен был убедиться, что несколько других вещей тоже работают, поэтому мой поздний ответ, в любом случае спасибо за ваш быстрый ответ! :)
1

Я буду использовать другой пример, но вы можете адаптировать свой класс Java android: Атрибут android: onClick может определять один метод, который будет вызываться, когда произойдет щелчок. Это может использовать отражение, вызывая методы класса.

Определение кнопки в вашем файле activity_main.xml:

<Button
    android:id="@+id/mapshow_button"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/txtMsg"
    android:layout_alignLeft="@+id/editLog"
    android:layout_alignRight="@+id/txtLogitude"
    android:text="@string/lblBtnMap"
    android:textSize="10sp" 
    android:onClick="clickMap"/>

создайте метод в свой класс активности:

public void clickMap(View v) {
    //TODO: do something    
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню