3 回答

TA貢獻1827條經驗 獲得超8個贊
你的活動必須有
public void insertIntoDb(View v) {
...
}
不是碎片。
如果您不想在活動中進行上述操作。初始化片段中的按鈕并將偵聽器設置為相同。
<Button
android:id="@+id/btn_conferma" // + missing
然后
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_rssitem_detail,
container, false);
Button button = (Button) view.findViewById(R.id.btn_conferma);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// do something
}
});
return view;
}

TA貢獻1828條經驗 獲得超6個贊
這不是問題,這是Android的設計??吹竭@里:
您應該將每個片段設計為模塊化和可重用的活動組件。也就是說,因為每個片段使用自己的生命周期回調定義自己的布局和自己的行為,所以可以在多個活動中包含一個片段,因此您應該設計為重用并避免直接操作另一個片段中的一個片段。
可能的解決方法是在MainActivity中執(zhí)行以下操作:
Fragment someFragment;
...onCreate etc instantiating your fragments
public void myClickMethod(View v){
someFragment.myClickMethod(v);
}
然后在你的Fragment類中:
public void myClickMethod(View v){
switch(v.getid()){
// Your code here
}
}
- 3 回答
- 0 關注
- 706 瀏覽
添加回答
舉報