0

私はAndroid開発の初心者です。3 つの編集ボックスと 1 つの「編集」ボタンがあります。アクティビティを起動すると、すべての編集ボックスが無効になります。[編集] ボタンをクリックすると、3 つの編集ボックスがすべて有効になり、ボタンのテキストが [保存] に変わります。編集ボックスのデータを更新した後、[保存] ボタンをクリックすると、更新されたデータをバックエンドに送信できるはずです。

私の問題は、「編集」と「保存」の2つの機能に1つのボタンをどのように使用できるかです。

私を助けてください。

4

4 に答える 4

2

次の方法で実行できます。

button = (Button) findViewById(R.id.button1);

button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        String ButtonText = button.getText().toString();
        if(ButtonText.equals("Save"){
            //code for save
            button.setText("Edit");
        }
        else{
            //code for edit
            button.setText("Save");
        }
    }

});
于 2013-10-17T17:36:27.770 に答える
1

私があなただったら、実際には編集用と保存用の 2 つのボタンを使用するでしょう。それらを同じサイズで同じ位置にします。それらを切り替える場合は、一方を非表示にし、もう一方を表示します。そのようにすると、onClickListeners を別々に保つことができ、コードがより理解しやすくなります。

そうは言っても、技術的には 1 つのボタンでも実現できます。ボタンを切り替えたいときにボタンのテキストを変更し、クリック リスナーに if ステートメントを追加して、ボタンが現在どの「モード」にあるかを確認して、実行するアクションを決定します。

于 2013-10-17T17:29:44.690 に答える
0

これを行う簡単な方法があるかどうかはわかりません。ただし、次のようなボタンクリックのさまざまな動作を確実に使用できます

// When you press it for long time.

    dummyButton.setOnLongClickListener(new OnLongClickListener() { 
    @Override
    public boolean onLongClick(View v) {
        return true;  // Can do lot more stuff here I am just returning boolean
    }
});

// Normal click of button 
    dummyButton.setOnClickListener(new OnClickListener() { 
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        //do lot more stuff here.
    }
});
于 2013-10-17T17:30:18.717 に答える
0

このようにしてください:

公開ブール変数を作成する

public boolean isClickedFirstTime = true;

xml で 3 つの editTexts を false に設定し、

あなたのボタンのonClick

    @Override
        public void onClick(View v) {
    if (v.getId() == R.id.edit_button_id) { //whatever your id of button
    Button button = (Button) findViewById(R.id.edit_button_id);
    if(isClickedFirstTime)
                {
                edit1.setEnabled(true);
                edit2.setEnabled(true);
                edit3.setEnabled(true);
                butt.setText("Save");
                isClickedFirstTime = false;
                }
                else
                {
                    ....//Get your values from editText and update your database
                            isClickedFirstTime = true;
                }
}
于 2013-10-17T17:55:46.230 に答える