【问题标题】:How to set autocomplete text in android fragment如何在android片段中设置自动完成文本
【发布时间】:2015-07-16 14:20:49
【问题描述】:

我想在我的应用程序中设置自动完成文本。我做了一些编码,但我遇到了一个错误,我的应用程序不幸停止了。请任何人解决这个问题。

我的代码在这里:

地址片段.java

package com.h2o;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
public class AddressFragment extends Fragment {

	@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_layout_address, container,false);

		// Get a reference to the AutoCompleteTextView in the layout
		AutoCompleteTextView textView = (AutoCompleteTextView) view.findViewById(R.id.city_autoCompleteTextView);
		// Get the string array
		String[] city = getResources().getStringArray(R.array.city);
		// Create the adapter and set it to the AutoCompleteTextView
		ArrayAdapter<String> adapter = new ArrayAdapter<String>((MainActivity) getActivity(), android.R.layout.simple_list_item_1, city);

		textView.setAdapter(adapter);

        return view;
    }
}

Logcat:

FATAL EXCEPTION: main
    Process: com.h2o, PID: 2158
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.h2o/com.h2o.AccountActivity}: java.lang.ClassCastException: com.h2o.AccountActivity cannot be cast to com.h2o.MainActivity
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.ClassCastException: com.h2o.AccountActivity cannot be cast to com.h2o.MainActivity
            at com.h2o.AddressFragment.onCreateView(AddressFragment.java:53)
            at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
            at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
            at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
            at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:551)
            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1220)
            at android.app.Activity.performStart(Activity.java:5953)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2261)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

我认为,在上面的代码(Addressfragment.java)这一行出现错误

ArrayAdapter 适配器 = new ArrayAdapter((MainActivity) getActivity(), android.R.layout.simple_list_item_1, city);

请任何人帮助我!

感谢您的提前..

【问题讨论】:

    标签: java android


    【解决方案1】:

    改变这个

    ArrayAdapter adapter = new ArrayAdapter((MainActivity) getActivity(), android.R.layout.simple_list_item_1, city);

    ArrayAdapter adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, city);

    【讨论】:

    • 如果它仍然给出错误,则强制转换活动 ..(AccountActivity) getActivity(),,,
    • 好的,然后尝试使用 (AccountActivity) 转换 getActivity。喜欢ArrayAdapter adapter = new ArrayAdapter((AccountActivity) getActivity(), android.R.layout.simple_list_item_1, city);
    猜你喜欢
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 2021-02-12
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多