私が近代化しているアプリケーションがあります。このプロセスの1つのステップは、フラグメントベースのレイアウトへの変更です(サポートライブラリのフラグメントを使用)。アクティビティをフラグメントに変換し、レイアウトがうまく機能するようにしました(ViewPagerを使用して、かっこいいものを!)
すべてのボタンを押す必要がある場合に、アクティビティにOnClickListenerを実装させていました。もちろん、新しいフラグメントの化身が同じことをしていますが、「onClick」がヒットすることはないようです。フラグメントに関して、この方法で動作するのを妨げる特別なものはありますか?
こうやって
public class fragmentOne extends Fragment implements OnClickListener {
Button myButton;
@Override
public View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedinstanceState) {
View myView = inflater.inflate(R.layout.fragment_1, container, false);
myButton = (Button) myView.findViewById(R.id.myButton);
myButton.setOnClickListener(this);
return myView;
}
@Override
public void onClick(View v) {
// implements your things
}
}
とてもシンプル
グローバルアクセスにOnClickアクションを使用することに集中します。これはあなたのプロジェクトのようにする必要があります。View.OnClickListenerを実装し、次にメソッドOnClick()、InOnCreateView()はこのようにする必要がありますbutton_submit.setOnClickListener(this);必要なビューについては、Clear Answer、Thankyouの以下のコードを参照してください。
public class New_Project extends Fragment implements View.OnClickListener{
private View mView;
private EditText edttxt_projectname;
private Button button_submit;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.fragment_newproject, container,false);
edttxt_projectname=(EditText)mView.findViewById(R.id.edttxt_projectname);
button_submit=(Button)mView.findViewById(R.id.button_submit);
button_submit.setOnClickListener(this);
return mView;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_submit:
edttxt_projectname.setText("Test Submit!#@%!#%");
break;
default:
break;
}
}
}
Abhijit Chakraの回答についてコメントしたいのですが、そのためには50人の担当者が必要なようです。 Abhijitの答えを使用できないのではないかと考えている人にとって、それは次の理由によるものです。
public void OnClick(View v) {
// implements your things
}
OnClickではなくonClickであることを確認する必要があります。ありがたいことにAndroid Studioの内部エラーメッセージが役に立ちました。
view.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
switch (v.getId()) {
case R.id.imgView1:
Toast.makeText(getActivity(), "Long pressing", Toast.LENGTH_SHORT).show();
updateImage();
break;
case R.id.imgView2:
Toast.makeText(getActivity(), "Long pressing", Toast.LENGTH_SHORT).show();
updateImage();
break;
case R.id.imgView3:
Toast.makeText(getActivity(), "Long pressing", Toast.LENGTH_SHORT).show();
updateImage();
break;
default:
break;
}