为了账号安全,请及时绑定邮箱和手机立即绑定

错误:类型不兼容:无法将 NewSubscription 转换为 Context

错误:类型不兼容:无法将 NewSubscription 转换为 Context

GCT1015 2023-01-05 16:47:12
我正在尝试创建一个动态表单布局,当我构建我的项目时,我在代码的第 37 行收到以下错误“错误:不兼容的类型:无法将 NewSubscription 转换为上下文”。是因为这是一个片段而不是 java 类吗?我该如何解决这个错误?NewSubscription.javapackage com.example.activitymanagement;import android.graphics.Color;import android.graphics.Typeface;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.EditText;import android.widget.LinearLayout;public class NewSubscription extends Fragment {    private LinearLayout mainLinear;    private Button createEdittext;    private int edittextcount =1;    private EditText editTextbox;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        //returning our layout file        //change R.layout.yourlayoutfilename for each of your fragments        return inflater.inflate(R.layout.fragment_new_subscription, container, false);        mainLinear = (LinearLayout) getView().findViewById(R.id.HolderLayout);        createEdittext = (Button) getView().findViewById(R.id.CreateEdittext);        createEdittext.setOnClickListener(new View.OnClickListener() {            public void onClick(View v) {                //Starting a new Intent                EditText editTextbox = new EditText(NewSubscription.this);                LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);                // param.setMargins(int left,int top , int right,int bottom)                params.setMargins(20, 10, 20, 10);                //  params.weight = 1.0f;                params.gravity = Gravity.CENTER_HORIZONTAL;  /// this is layout gravity of textview                editTextbox.setLayoutParams(params);            }        });    }
查看完整描述

2 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

无法转换为 Context


对于片段-->getActivity()


对于活动 ---> Activity.this


 public View onCreateView(LayoutInflater inflater, ViewGroup container,

                             Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_new_subscription, container, false);

        mainLinear = (LinearLayout) rootView.findViewById(R.id.HolderLayout);

        createEdittext = (Button) rootView.findViewById(R.id.CreateEdittext);

         .......

        return rootView;

    }

然后


 EditText editTextbox = new EditText(getActivity());

getActivity() 通常在片段中使用,以获取插入或扩充片段的活动的上下文。


查看完整回答
反对 回复 2023-01-05
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

代替第 37 行的NewSubscription.this使用getActivity(),如下所示:

EditText editTextbox = new EditText(getActivity());


查看完整回答
反对 回复 2023-01-05
  • 2 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信