0

基本的に、ユーザーのデフォルトのステータスを表示するテキストビューがあります

        <TextView
            android:id="@+id/clickable_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:onClick="editStatus"
            android:paddingLeft="3dp"
            android:paddingRight="3dp"
            android:text="Online"/>

これをタップすると、キーボードが開き、EditTextに変換されます。これが発生すると、「ステータスの保存」という新しいボタンが表示されます。「ステータスを保存」ボタンをタップすると、新しいテキストビューが作成され、使用入力されたテキストが表示されます。これは私のコードですが、との下に赤い波線がnew TextView(this)ありlinearLayoutます。

    private OnClickListener keyboard = new OnClickListener() {
    public void onClick(View v) {
        // Hide Keyboard
        InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.hideSoftInputFromWindow(getCurrentFocus()
                .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
        // Hide EditText
        EditText status = (EditText) findViewById(R.id.hidden_edit_view);
        status.setVisibility(View.GONE);
        // Get inputtes text
        String text = status.getText().toString();
        // Display text in TextView
        LinearLayout layout = (LinearLayout) findViewById(R.id.contactlist);
        TextView valueTV = new TextView(this);
        valueTV.setText(text);
        ((LinearLayout) linearLayout).addView(valueTV);
4

1 に答える 1

2

代わりに、次のようにして外部クラスを参照する必要があります。

TextView valueTV = new TextView(YourActivity.this);

内部クラスのすぐthis内側で使用する場合、内部クラスインスタンスを参照しているため、これはではなく、ContextですOnClickListener

于 2013-01-28T00:41:04.867 に答える