我正在尝试创建一个动态表单布局,当我构建我的项目时,我在代码的第 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() 通常在片段中使用,以获取插入或扩充片段的活动的上下文。
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
代替第 37 行的NewSubscription.this
使用getActivity()
,如下所示:
EditText editTextbox = new EditText(getActivity());
添加回答
举报
0/150
提交
取消