2

Eclipse で次のエラーが発生し続けます。

型 View 型から非静的メソッド setVisibility(int) への静的参照を作成できません

私のコードは次のとおりです。

package com.example.testing;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

public void onLoveButtonClicked(View view) {
    TextView haikuTextView = (TextView) findViewById(R.id.haikuTextView);
    TextView.setVisibility(View.VISIBLE); //error here
}
 }

私はJavaの初心者なので、何が問題を引き起こしているのかわかりません。エラーをグーグルで検索しましたが、私に役立つものは何も得られません。

4

3 に答える 3

0

そのはず:

textView.setVisibility(View.VISIBLE);//A small t instead of a capital T.

幸運を祈ります

于 2013-06-19T12:05:41.570 に答える
0

以下を使用する必要があります。

haikuTextView.setVisibility(View.VISIBLE); 

TextViewはクラスでhaikuTextViewあり、変数です。クラス全体の可視性を変更することはできません。ただし、変数の可視性は変更できます。


あなたが書いたとき:

<TextView
    android:id="@+id/haikuTextView"
    ... />

クラスのインスタンスを1 つ作成しました。TextViewクラスの多くのインスタンスを作成できますがTextView、1 つのインスタンスで特定の機能を変更したい場合は、変更しTextViewたいものを指定する必要があります。

あなたが書いたとき、あなたはすべてTextView.setVisibility()を変更しようとしました。現在、クラスにはすべてを変更するメソッドはありませんが、1 つのインスタンスを変更する必要があります。 TextViewTextViewsetVisibility()TextViewsetVisibilty()

したがって、これを使用し
て every にアクセスしようとすると、「静的参照」になりますが、前述のように、everyを呼び出すメソッドはありません。TextViewTextView.setVisibility()setVisibility() TextView

1 つのインスタンスの可視性を変更するために使用haikuTextView.setVisibilty()する場合、これは「非静的メソッド」が存在するため機能します。

于 2012-09-06T22:24:20.327 に答える
0

サムの答えを拡張するには:

TextView はクラスです。View クラスのサブクラスでもあります。クラスの静的メンバーを参照するときは、「classname.method(...)」または「classname.field」を実行します。「TextView.setVisibility」と言うときは、TextView クラスに継承される「View」クラスのメソッド「setVisibility」への「静的参照」を作成しています。したがって、エラー メッセージ: タイプ View から非静的メソッド setVisibility(int) への静的参照を作成できません。setVisibility メソッドは静的メソッドではないためです。通常の方法です。

通常のメソッドは、クラスの特定のインスタンスに関連して参照する必要があります。haikuTextView は TextView のインスタンスなので。あなたは言うことができます:

haikuTextView.setVisibility(View.VISIBLE);

それは明らかですか?

于 2012-09-06T22:36:09.963 に答える