0

ImageButtonAndroid用のsを使用して(Eclipseを使用して)カスタムキーボードを設計しました。ボタンをクリックしてテキストに書き込みたいのですが、ボタンをクリックするたびにテキストがリセットされ、以前に書いたものが消去されます。

前のテキストから続けて書くにはどうすればよいですか?

これは、2 つのボタンとテキスト フィールドを使用した基本的なコードです。

package com.example.nonachan;

import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;

public class MainActivity extends Activity {

    char g;
    char h;

    int i = 0; 

    //char buf[] = new char[10];    

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

        final EditText t =(EditText)findViewById(R.id.t1);

             ImageButton n = (ImageButton)findViewById(R.id.b1);            
            n.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub

                    g = 'd';
                    // buf[i] = 'd';
                      t.setText( "" + g);  
                     i++;
                }       

            });

            ImageButton a = (ImageButton)findViewById(R.id.b2);
            a.setOnClickListener(new View.OnClickListener() {     
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub

                //   buf[i] = 'h';
                     h = 'h' ;
                     t.setText( "" +h); 
                     i++; 

                }
            });

            Button l = (Button)findViewById(R.id.b3);
            l.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub      

                }

            });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
4

1 に答える 1

0
t.setText( "" + g);

コードの上記の行は、tのテキストを"" + gと等しい に設定することを示してい"d"ます。あなたがそれを指示しないので、テキストを追加することはありません。

テキスト フィールドに既存のテキストを追加してみてください。

t.setText(t.getText().toString() + g);

そして、あなたも同じことをしなければなりませんt.setText( "" +h);

于 2013-03-09T16:13:09.727 に答える