mam*_*ius 56 android toast android-fragments android-activity
当用户点击片段内的按钮时,我正在尝试显示Toast消息.问题是我无法访问活动以显示其上的Toast.
这是以下来源Fragment:
public class FrgTimes extends Fragment
{
ScrollView sv;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
if (container == null) { return null; }
sv = (ScrollView)inflater.inflate(R.layout.frg_times, container, false);
btnTime1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//****** HERE's the PROBLEM ********
Toast.makeText(<The Activity>, "Please long press the key", Toast.LENGTH_LONG );
}});
return sv;
}
Run Code Online (Sandbox Code Playgroud)
这是我一直在尝试的.
Toast.makeText( getActivity() , ...
Toast.makeText( getView().getContext() , ...
Toast.makeText( getActivity().getApplicationContext() , ...
Toast.makeText( sv.getContext() , ...
Toast.makeText( sv.getRootView().getContext() , ...
Run Code Online (Sandbox Code Playgroud)
在Debug中,我可以看到所有这些代码都没有任何异常但没有TOAST显示.
Com*_*are 112
你没有打电话show()给Toast你正在创造的makeText().
小智 49
如alfo888_ibg所述:
@Override
public void onClick(View arg0) {
Toast.makeText(activity,"Text!",Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
做就是了:
Toast.makeText(getActivity(),"Text!",Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
这对我有用.
alf*_*ibg 20
为了帮助另一个遇到同样问题的人,Fragment中使用Toast的完整答案是:
Activity activity = getActivity();
@Override
public void onClick(View arg0) {
Toast.makeText(activity,"Text!",Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
Sin*_*Þór 12
在片段中进行吐司时,请执行以下操作:
Toast.makeText(getActivity(),"Message", Toast.LENGTH_SHORT).show();
当类扩展片段时,必须使用getActivity(),因为fragment是activity 的子类.
Cheerse
小智 8
您可以使用getActivity()获取当前活动
Toast.makeText(getActivity(),"Toast your message" ,Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
在片段中制作吐司
Toast.makeText(getActivity(), "Your Text Here!", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
要么
Activity activityObj = this.getActivity();
Toast.makeText(activityObj, "Your Text Here!", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
要么
Toast.makeText(this, "Your Text Here!", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130595 次 |
| 最近记录: |