Android setText вызывает сбой - PullRequest
       0

Android setText вызывает сбой

1 голос
/ 10 февраля 2012

Я пытаюсь создать небольшую простую программу с изображением и текстом под ним.Как обратный отсчет.Я пытался прогнать эту программу, и все работает, кроме случаев, когда я получаю setText, программа вылетает.В чем может быть проблема?Я много занимался поиском и изменением, но у меня все та же проблема.

package com.ob.IsIt;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class Isit1337 extends Activity {

ImageView image;
TextView t;
String until;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    until = "fnkar inte";
    t=(TextView)findViewById(R.layout.main);
    run();





}
private void run()
{

    if(IsIt.check())
    {

        image.setEnabled(false);

    }

    until = IsIt.timeLeft();

    t.setText("test");


    }
}

IsIt работает, IsIt.check возвращает логическое значение, а IsIt.timeLeft возвращает строку.XML-код выглядит следующим образом.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom|center|center_vertical|top"
android:orientation="vertical" >

<ImageView
    android:id="@+id/image"
    android:layout_width="277dp"
    android:layout_height="441dp"
    android:src="@drawable/blackno" />

<TextView
    android:id="@+id/t"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.46"
    android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

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

Ответы [ 6 ]

5 голосов
/ 10 февраля 2012

Я предполагаю, что вы получаете исключение NullPointerException. (Когда задаете такой вопрос, лучше также вставить соответствующий вывод LogCat.) Измените эту строку:

t=(TextView)findViewById(R.layout.main);

к этому:

t=(TextView)findViewById(R.id.t);
2 голосов
/ 10 февраля 2012

изменить на это

t=(TextView)findViewById(R.id.t);
2 голосов
/ 10 февраля 2012

ClassCastError, потому что R.id.main - это ваш макет.

Должно быть:

t=(TextView)findViewById(R.id.t);
2 голосов
/ 10 февраля 2012

Вы должны написать:

t = (TextView) findViewById(R.id.t);

, чтобы найти идентификатор для TextView.

0 голосов
/ 10 февраля 2012
TextView(any widget) should be referered as,
TextView t=(TextView)findViewById(R.id.t);

Layout(xml layout file)only should be refered as,
LayoutInflater layoutInflater;
LinearLayout linearLayout= (LinearLayout) layoutInflater.inflate(R.layout.main,
            null); 
0 голосов
/ 10 февраля 2012

Проверьте это для просмотра текста:

t = (TextView) findViewById(R.id.t);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...