-1

ボタンをクリックして新しいアクティビティを開始する際に問題が発生しています。コードは次のとおりです。

package test.project;

import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;

public class TestActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

  View aboutButton = findViewById(R.id.about_content);
        aboutButton.setOnClickListener(this);
    }
public void onClick(View v) {
        switch (v.getId()) {
        case R.id.about_content:
        Intent i = new Intent(this, testit.class);
        startActivity(i);
        break;
        // More buttons go here (if any) ...
        }
    }
}

誰でもこのエラーを修正するのを手伝ってくれますか

エラーライン

aboutButton.setOnClickListener(this);

Main.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:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click here" android:layout_gravity="center"
android:text="Click here" android:layout_gravity="center" android:layout_marginTop="30dip"/>
</LinearLayout>

about_content を含む XML ファイルは

<?xml version="1.0" encoding="utf-8"?>

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dip" >
    <TextView
        android:id="@+id/about_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/about_text" />
</ScrollView>

about_content はすでにここで定義されています

<TextView
            android:id="@+id/about_content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/about_text" />
4

5 に答える 5

0

これは、コンテンツビューを設定した「main.xml」にabout_content TextViewが含まれていないためです。これは、投稿した他のxmlに含まれています...

注:setContentView(R.layout.yourlayout)xmlに存在するR.idにのみアクセスできます...

于 2012-05-28T07:17:12.940 に答える
0

これが解決策です

Button aboutButton = (Button)findViewById(R.id.about_content);

追加することを忘れないでくださいtestit Activity in Android Manifest

于 2012-05-28T07:39:18.773 に答える
0

作成しますsetContentView(R.layout.main);main.xml、View have id = を含めません R.id.about_content。でraplaceするとうまくいきますfindViewById(R.id.button1);

于 2012-05-28T07:25:11.907 に答える
0

まあ、あなたは logcat の出力を投稿していませんが、これは非常に一般的な初心者の間違いであるため、私は大げさな推測をして、おそらくNullPointerException.

への呼び出しfindViewByIdはおそらく を返しnullています。これは、システムが で指定された ID に関連付けられたビューを見つけられなかったことを意味しますR.id.about_content。XML レイアウトのタイプミスを再確認します。

于 2012-05-28T06:37:42.680 に答える
0

about_contentNullPointerException を作成する main.xml にid を持つものが何もない可能性があります。

また、aboutButton従来のボタンであることが想定されている場合は、これを使用する必要があります。

Button aboutButton = (Button) findViewById(R.id.about_content);

添加

aboutButtonは TextView であるため、これを使用します。

TextView aboutButton = (TextView) findViewById(R.id.about_content);

ただし、この TextViewは、setContentView() に渡されるレイアウト内にある必要があります。そうしないと、findViewById() は null を返します。

于 2012-05-28T06:36:49.537 に答える