2

「setOnClickListener(onSave)」と「View.OnClickListener」に問題があります</ p>

以下は私のコードです:

package apt.tutorial;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class LunchList extends Activity {
Restaurant r = new Restaurant ();

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

//save button
//be notified when the button is clicked
Button save =(Button)findViewById(R.id.save);

save.setOnClickListener(onSave){
}

private View.OnClickListener onSave=new View.OnClickListener();
public void onClick(View v) {
    EditText name=(EditText)findViewById(R.id.name);
    EditText address=(EditText)findViewById(R.id.addr);

    r.setName(name.getText().toString());
    r.setAdress(address.getText().toString());
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
}

save.setOnClickListener(onSave)の場合はsave.setOnClickListener(onSave)というエラーが表示され、View.OnClickListenerの場合はエラーが発生します。タイプView.OnClickListenerをインスタンス化できません。

私はこのウェブサイトを見て、この問題をグーグルで検索しましたが、解決策が見つかりませんでした。皆さんが私を助けてくれることを願っています。

挨拶します。

4

2 に答える 2

2

後にセミコロンを削除します

private View.OnClickListener onSave=new View.OnClickListener();

onClickListenerの匿名コンストラクター内にonClick(View v)を記述するか、以下のコードでコードを変更します。

private View.OnClickListener onSave=new View.OnClickListener(
public void onClick(View v) {
    EditText name=(EditText)findViewById(R.id.name);
    EditText address=(EditText)findViewById(R.id.addr);

    r.setName(name.getText().toString());
    r.setAdress(address.getText().toString());
});
Button save =(Button)findViewById(R.id.save);
save.setOnClickListener(onSave);
于 2012-10-09T15:24:44.840 に答える
0

次のコードを試してください。

         start.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {

            mainactivity();

        }
    });
于 2012-10-09T15:28:15.090 に答える