我有一个活动A在其中我有一个片段。onclick事件在片段活动不起作用
在该活动片段的变化进行分段基于用户输入在活动A. A(默认当活性A被称为)或B片段
在这两个片段A & B I有一个按钮与点击监听。 ,但此按钮仅在活动A启动时第一次工作。
当用户更改片段时,这些片段中的按钮停止响应点击。
请建议我需要什么,以使按钮片段A & B可办时,片段由用户更改。
我更换因此代码基于用户输入的片段:
fr = new FragmentOneDice();
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.fragment_place, fr);
fragmentTransaction.commit();
在片段活动代码是这样的用于在点击监听器按钮。
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import java.util.ArrayList;
import java.util.Collections;
public class FragmentOneDice extends Fragment implements View.OnClickListener {
Button button1;
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Inflate the layout for this fragment
view = inflater.inflate(R.layout.activity_fragment_one, container, false);
button1 = (Button) view.findViewById(R.id.button_one);
button1.setOnClickListener(this);
return view;
}
@Override
public void onClick(View v) {
//MY CODE HERE
}
'this'不是有效的OnClickListener,片段中的onClick方法是片段本身的onclick。尝试用'button1.setOnClickListener(new View.OnClickListener()替换'button1.setOnClickListener(this);'''@Override public void onClick(View v){/ * YOUR CODE * /}});' – x13
无效,请你解释一下吗?因为正如我在问题中所说的,onClick在第一次创建活动A并且用户没有尝试更改片段时起作用。 onClick在用户更改片段时停止工作。 –
通过覆盖onClick(),FragmentOneDice实现了View.OnCLickListener,所以它是一个有效的View.OnClickListener。 – 0X0nosugar