findviewbyid не работает в Android - PullRequest
1 голос
/ 09 марта 2011
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class ViewId extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView txtArea = new TextView(this);
        txtArea.setId(20);
        txtArea.setText("Hello");

        TextView view = new TextView(this);
        view = (TextView) this.findViewById(20);
        Toast.makeText(this,view.getText(), Toast.LENGTH_LONG).show();
    }
}

Когда я отлаживаю вышеуказанный код в eclipse, значение view показывает нулевое значение в окне переменных.в чем проблема?или есть какой-либо другой метод для выделения текстового представления и извлечения этого текстового представления из этого конкретного идентификатора без использования файла XML.

1 Ответ

5 голосов
/ 09 марта 2011

Ваш код немного грязный.Сначала вы устанавливаете свой контент-вид с помощью XML-макета, который вы никогда не используете.Вы также создаете TextView txtArea и устанавливаете id на 20, что нормально, но вы никогда не добавляете это представление к своему контенту, поэтому вы можете найти его позже, конечно.верстка с XML и использовать его.Вы также можете изменить его программно или создать свой собственный макет программным способом и установить представление содержимого для нового созданного макета / представления.

...