我有一個應用程序,我正在現代化。此過程的一個步驟是更改爲基於碎片的佈局(使用支持庫中的碎片)。 我把我的活動轉換成碎片,並得到了很好的佈局(使用ViewPager,很酷的東西!)片段實現OnClickListener
我有我的活動實現OnClickListener我所有的按鈕需求。我有新的Fragment化身當然做同樣的事情,但它看起來像「onClick」永遠不會受到打擊。碎片有什麼特別之處,阻止它們以這種方式工作?
我有一個應用程序,我正在現代化。此過程的一個步驟是更改爲基於碎片的佈局(使用支持庫中的碎片)。 我把我的活動轉換成碎片,並得到了很好的佈局(使用ViewPager,很酷的東西!)片段實現OnClickListener
我有我的活動實現OnClickListener我所有的按鈕需求。我有新的Fragment化身當然做同樣的事情,但它看起來像「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
}
}
很簡單
'擴展片段' – bcorso 2014-07-25 21:08:38
簡單的事情是最不尋常的。但只有智者才能看到它。非常感謝。試圖想象它很多小時。 – 2015-10-03 18:00:56
我忘了: myButton.setOnClickListener(this); 哦,男人@@!浪費了我很長時間後回來與Android的時間。謝謝。 – 2016-07-23 15:34:54
我想對作者Abhijit查克拉的回答發表評論,但似乎我需要有50個代表了點。對於那些誰是想,如果你不能使用作者Abhijit的答案,這是因爲:
public void OnClick(View v) {
// implements your things
}
你需要確保它的onClick,不是的OnClick。幸運的是,Android Studio內部錯誤消息來拯救。
我將重點用於全球訪問的OnClick行動,你必須做這樣的項目,必須實現View.OnClickListener,然後覆蓋的方法 的OnClick(),在OnCreateView()必須這樣做button_submit.setOnClickListener(this);爲您需要的意見, 請參閱下面的代碼清除答案,謝謝。
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;
}
}
}
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;
}
我假設你的意思是它的實現呢?在中,'公共類YourFrag擴展Fragment實現OnClickListener'?如果是這樣,你能告訴我們你如何附加監聽器以及'onClick'方法嗎? – Eric 2012-08-08 03:15:36
你在onCreateView方法中找到了ViewViewId,然後在onActivityCreated方法中附加了監聽器? – 2012-08-08 03:18:29
哎呀,哇,我有點過度了。是的,我的意思是實施,對不起。我findViewByIding並在Update()方法中附加偵聽器。說到這一點,那實際上甚至是一件事情?我甚至沒有一個onActivityCreated方法。嗯 – Nick 2012-08-08 03:22:28