gpt4 book ai didi

java - Fragment 中的 findViewById 返回 Null

转载 作者:行者123 更新时间:2023-12-01 07:25:53 25 4
gpt4 key购买 nike

我尝试过 getActivity().findViewById()getView()。这是我的 fragment 中的代码。它们都返回 null..

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.edit_viewer, container, false);

Bundle bundle = getArguments();
id = bundle.getLong("VIEWER_ID");

DatabaseHelper dbHelper = new DatabaseHelper(getActivity());

username = (EditText)getView().findViewById(R.id.username);
password = (EditText)getView().findViewById(R.id.entry);
hostUrl = (EditText)getView().findViewById(R.id.hostUrl);
webApp = (EditText)getView().findViewById(R.id.webApp);
modelId = (EditText)getView().findViewById(R.id.modelId);
properties = (EditText)getView().findViewById(R.id.properties);

Activity 代码

public class EditViewerActivity extends ActionBarActivity {
private Long id;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_viewer);

Intent intent = getIntent();
Long id = intent.getLongExtra("VIEWER_ID", 0);

ViewerEditFragment newFragment = new ViewerEditFragment();
Bundle bundle = new Bundle();
bundle.putLong("VIEWER_ID", id);
newFragment.setArguments(bundle);

if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, newFragment)
.commit();
}

}

edit_viewer.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/edit_viewer"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

<TextView
style="?android:attr/listSeparatorTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="sfn Credentials"/>

<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username"
android:paddingLeft="10dp" />
<EditText
android:id="@+id/username"
android:hint="Admin"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>

<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/password"
android:paddingLeft="10dp" />
<EditText
android:id="@+id/entry"
android:inputType="textPassword"
android:hint="Password"
android:minWidth="100dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>

<TextView
style="?android:attr/listSeparatorTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Host Settings"/>

<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/host_url"
android:paddingLeft="10dp" />
<EditText
android:id="@+id/hostUrl"
android:hint="http://www.mysfn.com"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>

<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/web_app"
android:paddingLeft="10dp" />
<EditText
android:id="@+id/webApp"
android:hint="sfn"
android:minWidth="100dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>

<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/model_id"
android:paddingLeft="10dp" />
<EditText
android:id="@+id/modelId"
android:hint="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>

<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/properties"
android:paddingLeft="10dp" />
<EditText
android:id="@+id/properties"
android:hint="dv=icon"
android:minWidth="100dip"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>

<Button android:id="@+id/close"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Save" />
</LinearLayout>

最佳答案

改变这个

 username = (EditText)getView().findViewById(R.id.username);

 username = (EditText)rootView.findViewById(R.id.username);

并对所有其他 View 执行相同的操作

关于java - Fragment 中的 findViewById 返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24952692/

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