Добавить слово в словарь, распечатать записи для отображения - PullRequest
0 голосов
/ 31 марта 2019

Я создаю простое приложение, в которое вы можете добавить слово в пользовательский словарь одной кнопкой и отобразить слова пользовательского словаря, нажав другую кнопку. У меня возникли проблемы с добавлением слова в словарь. В частности, первый аргумент context в addWord (this). Ниже приведена копия основной деятельности и копия ошибки. Любая помощь или руководство приветствуется.

Ошибка:

ошибка: несовместимые типы: невозможно преобразовать в контекст

MainActivity

public abstract class MainActivity extends Activity implements View.OnClickListener {
    EditText edtTxt;
    TextView txtVw;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edtTxt = findViewById(R.id.editText1);
        txtVw = findViewById(R.id.Display);

        Button button1 = (Button) findViewById(R.id.insertWord);
        button1.setOnClickListener(
                new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        UserDictionary.Words.addWord(this, edtTxt.getText().toString(), 10, UserDictionary.Words.LOCALE_TYPE_ALL);
                        Toast.makeText(getApplicationContext(), "Word Successfully Added to USER DICTIONARY", 10).show();
                    }
                });

        Button button2 = (Button) findViewById(R.id.displayWord);
        button2.setOnClickListener(
        new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Uri dic = UserDictionary.Words.CONTENT_URI;
                ContentResolver resolver = getContentResolver();
                Cursor cursor = resolver.query(dic, null, null, null, null);
                txtVw.setText("");
                while (cursor.moveToNext()) {
                    String word = cursor.getString(cursor.getColumnIndex(UserDictionary.Words.WORD));
                    txtVw.append("\nword: " + word);
                }
            }
        });
    }
}

1 Ответ

0 голосов
/ 31 марта 2019

попробуйте это.в onCreate() метод.

String text = edtTxt.getText().toString();

button1.setOnClickListener(
        new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                UserDictionary.Words.addWord(MainActivity.this, text, 10, UserDictionary.Words.LOCALE_TYPE_ALL);
                Toast.makeText(getApplicationContext(), "Word Successfully Added to USER DICTIONARY", 10).show();
            }
        });
...