android studio和import中未使用的import语句为灰色

时间:2018-04-13 02:18:37

标签: java android

我是Android的新手,我似乎无法弄清楚导致此错误的原因。

我试图尝试文本视图或编辑视图,如果单击该按钮,它将保存输入的文本,并在您返回应用程序后将其显示在文本视图中。

错误提示error: cannot find symbol variable textView,有时甚至是error: cannot find symbol variable Connect

问题:

为什么即使导入textView

import android.widget.TextView;也会出错

另外,为什么import android.widget.TextView;是浅灰色的?

下面的截图是: Import color to grayCompiler error

这是我的代码

import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.EditText;


public class MainActivity extends AppCompatActivity {

EditText textView;
Button button;

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

    textView = (EditText) findViewById(R.id.textView);
    button = (Button) findViewById(R.id.button);

    final SharedPreferences sharedPref = getPreferences(Connect.MODE_PRIVATE);
    String oldItem = sharedPref.getString("oldItem", "Nothing created yet...");

    textView.setText(oldItem);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            SharedPreferences.Editor editor = sharedPref.edit();
            editor.putString("oldItem", textView.getText().toString());
            editor.commit();
        }
    });
}
}

更新

我不会在我的EditText XML代码上添加任何ID,这就是机器无法找到它的原因。

android:id="@+id/textView"

另外,我从这里更新了

final SharedPreferences sharedPref = getPreferences(Connect.MODE_PRIVATE);

到这个

final SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);

我不确定Connect和Context之间有什么区别。

感谢@Kapil G

3 个答案:

答案 0 :(得分:1)

问题是:您没有使用TextView。

textView = (EditText) findViewById(R.id.textView);

=>

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

是的,EditText是一种TextView,但似乎在你的xml中,它将是TextView。那么,如何转换为TextView?

答案 1 :(得分:0)

检查您的XML文件,看看您是否已将R.id.textView声明为TextView或Edittext。

两者都不同。您的输入字段是您的EditText,您想要显示数据的输出字段是TextView。

也不确定你宣称什么是Connect。但是SharedPreference需要上下文中的模式,所以你的行应该是这样的 -

final SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);

此外,您的导入将变为灰色,因为您尚未在活动中的任何位置使用TextView组件。

答案 2 :(得分:0)

它只是未使用过的。 如果你认为你需要它保留它,否则你可以删除它。 此外,大部分时间都会自动导入,因此您不必担心。

如果你想带进口只是做:

Alt + Enter