Dra*_*mat 27 android android-fragments android-fragmentactivity
我有一个FragmentActivity我添加的地方Fragment.根据某些情况,我想Buttons从该片段的布局访问并更改它们的单击侦听器.
我所做的是:
View view = myFragment.getView();
Button myButton = (Button) view.findViewById(R.id.my_button);
myButton.setOnClickListener(new MyClickListener());
Run Code Online (Sandbox Code Playgroud)
但view变量总是如此null.
我如何获得活动的视图?
Jar*_*vis 29
如果你想访问你的组件并设置一些数据,我建议你在片段中创建一个方法,如下所示:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
public class DetailFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.details, container, false);
return view;
}
public void setSettings(){
Button button = (Button) getView().findViewById(R.id.my_button);
button.setOnClickListener(new MyClickListener());
}
}
Run Code Online (Sandbox Code Playgroud)
Vol*_*kiv 15
试试这个:
public class YourFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.your_fragment, null);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
View view = getView();
if(view != null) {
view.findViewById(R.id.my_button).setOnClickListener(new MyClickListener());
}
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码必须正常工作.我希望这能帮到您.
| 归档时间: |
|
| 查看次数: |
60644 次 |
| 最近记录: |