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

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

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

GCT1015 2023-01-05 16:47:12

我正在尝试创建一个动态表单布局,当我构建我的项目时,我在代码的第 37 行收到以下错误“错误:不兼容的类型:无法将 NewSubscription 转换为上下文”。是因为这是一个片段而不是 java 类吗?我该如何解决这个错误?


NewSubscription.java


package 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贡献1532条经验 获得超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贡献1740条经验 获得超2个赞

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

EditText editTextbox = new EditText(getActivity());


查看完整回答
反对 回复 2023-01-05

添加回答

举报

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