gpt4 book ai didi

java - Android fragment 按钮问题

转载 作者:行者123 更新时间:2023-12-02 06:24:57 26 4
gpt4 key购买 nike

好吧,在我解释之前,我还不是 Android 编程方面的专家,所以如果我提出了一个愚蠢的问题,请原谅我。

我试图在 Java 类中实现的代码正在处理按钮和 fragment 。我想在 fragment 类中放置一个按钮,以便转到网站。即(Facebook Instagram)但我不知道为什么我在 Activity = this; 处收到错误我希望有人帮助我并向我解释(如果可能的话)为什么会出现这种情况以及我将来可以做什么来防止此错误再次发生。

这是 Java 代码:

package info.androidhive.slidingmenu;

import android.app.Activity;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;


public class NetworksActivity extends Fragment implements OnClickListener{

ImageButton imgButtonInstagram;
ImageButton imgButtonFacebook;
Activity activity;

public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.networks_layout);
}
public View onCreateView(LayoutInflater inflater, ViewGroup parent,
Bundle saedInstanceState) {
View rootView = inflater.inflate(R.layout.networks_layout, parent, false);

activity = this;
imgButtonInstagram = (ImageButton)rootView.findViewById(R.id.imgBtnInsta);
imgButtonFacebook = (ImageButton)rootView.findViewById(R.id.imgBtnFace);
imgButtonFacebook.setOnClickListener(listener);
imgButtonInstagram.setOnClickListener(listener);

return rootView;
}

private View.OnClickListener listener = new View.OnClickListener() {
public void onClick(View v) {

switch (v.getId()){
case (R.id.imgBtnInsta):
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("http://instagram.com/m4lvip")));

break ; // add here

case (R.id.imgBtnFace):
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.facebook.com/")));

break ;// add here

}


}
};

@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub

}
}

最佳答案

activity = this this 并不引用 Activity 上下文,因为 NetworksActivity 扩展了 Fragment

使用

activity = getActivity()

getActivity()

返回此 fragment 当前关联的 Activity。

您的导入也不正确

删除这个

import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;

使用

import android.view.View
import android.view.View.OnClickListener;

同时使用@Override注解

 @Override 
public void onClick(View v) {

同时删除这个

@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub

}

同时删除这个

implements OnClickListener

关于java - Android fragment 按钮问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20625487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com