Android:getApplication()未定义类型View.OnClickListener()

时间:2014-03-15 22:47:13

标签: android android-fragments

我目前正在尝试在我的Android应用中实现Facebook的登录工具。我遇到了

的问题
Intent diaryIntent = new Intent(getApplication(), DiaryListActivity.class);

错误方法getApplication()未定义类型new View.OnClickListener 。我已经查看了有关此问题的其他问题,但我还没有找到解决方案。我个人认为这可能与我使用片段的事实有关,但我是这个概念的新手,所以不明白如何解决问题,或者甚至是否与此有关。

public class SelectionFragment extends Fragment {

private static final String TAG = "SelectionFragment";
private ImageButton mAddButton;

@Override
public View onCreateView(LayoutInflater inflater, 
        ViewGroup container, Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);
    View view = inflater.inflate(R.layout.selection, 
            container, false);
    mAddButton = (ImageButton) view.findViewById(R.id.diaryform_home_add);

    mAddButton.setOnClickListener(new View.OnClickListener() { //Listens for a user to interact with the save button
        public void onClick(View v) {
            // Do something to save the data
            Intent diaryIntent = new Intent(getApplication(), DiaryListActivity.class);
            startActivity(diaryIntent);

        }
    });

    return view;

感谢任何指导,谢谢你。

编辑: @ mike20132013 @codeMagic @crazyPixel所有人给了我正确答案,但我不能给他们所有正确的答案所以我给了第一个答案正确的答案。谢谢你的回答,谢谢。

3 个答案:

答案 0 :(得分:2)

改变你的:

Intent diaryIntent = new Intent(getApplication(), DiaryListActivity.class);

更改

Intent diaryIntent = new Intent(getActivity(), DiaryListActivity.class);

由于您使用的是片段,因此必须使用getActivity()而不是context.getApplicationContext()。

我很确定这会奏效。祝你好运.. :)

答案 1 :(得分:1)

更改

Intent diaryIntent = new Intent(getApplication(), DiaryListActivity.class);

Intent diaryIntent = new Intent(v.getContext(), DiaryListActivity.class);

Context构造函数需要Intent而不是应用程序,但我认为您的意图是getApplicationContext(),但无论如何,只需使用Context { {1}}点击了。

All About Intents

答案 2 :(得分:1)

要启动活动,您需要在片段使用中使用活动上下文 -

getActivity().getApplicationContext()

而不是

getApplication()

继续使用该活动 -

getActivity().startActivity(intent)

要记住的一个好的拇指规则是片段是“内部”活动,即它们的上下文(以及所有相关的)来自它们所在的活动。