具有 Appcompactivity 的 Android 片段

Posted

技术标签:

【中文标题】具有 Appcompactivity 的 Android 片段【英文标题】:Android Fragment with Appcompactivity 【发布时间】:2017-11-13 14:45:18 【问题描述】:
package com.darkweb.android.amityaaroh.HomeActivity;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import com.darkweb.android.amityaaroh.R;

public  class events extends Fragment 

ListView listView;

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

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

;
@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.events);

    initializeListView();





private void initializeListView() 

    listView = (ListView)getView().findViewById(R.id.listview);

    final String[] items = "One", "Two", "Three", "Four", "Five", "Six", "Seven";

    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(), R.layout.list_item, R.id.textView2, items);

    listView.setAdapter(arrayAdapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() 
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) 

            String item = items[position];

            Toast.makeText(events.this.getActivity(), item+" is clicked", Toast.LENGTH_LONG).show();
        
    );
 

错误:我们可以将片段与 appcomactivity 放在一起吗 错误:(29, 9) 错误:找不到符号方法 setContentView(int) 错误:任务 ':app:compileDebugJavaWithJavac' 执行失败。

编译失败;有关详细信息,请参阅编译器错误输出。

【问题讨论】:

从 onCreate() 中移除 setContentView 方法 当去事件活动时,应用程序没有运行!如果我删除 setcontentview 删除 create 方法并调用您的 initializeListView(); OnResume 方法中的方法 用 private void initializeListView(View view)listView = (ListView)view.findViewById(R.id.listview); 初始化你的视图 如果我将删除 onCreate() 方法,那么我的活动将如何在没有给定布局的 setContentView() 的情况下显示。 【参考方案1】:

移动并改变它

listView = (ListView)getView().findViewById(R.id.listview);

到 onCreateView()

listView = rootView.findViewById(R.id.listview);

移除 onCreate() 方法

【讨论】:

【参考方案2】:

用这段代码把getview改成getActivity(),可以直接调用onCreateView下的方法

public class event extends Fragment 
    ListView listView;

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

        

        private void initializeListView() 

            listView = (ListView)getActivity().findViewById(R.id.listview);

            final String[] items = "One", "Two", "Three", "Four", "Five", "Six", "Seven";


          ArrayAdapter<String> arrayAdapter= new ArrayAdapter<String> (getActivity(), android.R.layout.simple_list_item_1, items);
            listView.setAdapter(arrayAdapter);

            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() 
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) 

                    String item = items[position];

                    Toast.makeText(events.this.getActivity(), item+" is clicked", Toast.LENGTH_LONG).show();
                
            );
        
    



【讨论】:

应用程序被强制关闭停止 eError:(36, 48) 错误:没有找到适合 ArrayAdapter(events,int,String[]) 的构造函数 ArrayAdapter.ArrayAdapter(Context,int,int) 不适用(参数不匹配; events 无法转换为 Context)构造函数 ArrayAdapter.ArrayAdapter(Context,int,String[]) 不适用(参数不匹配;事件无法转换为 Context)构造函数 ArrayAdapter.ArrayAdapter(Context,int,List) 不适用适用(参数不匹配;事件无法转换为上下文)

以上是关于具有 Appcompactivity 的 Android 片段的主要内容,如果未能解决你的问题,请参考以下文章

ANDR-PERF tryGetService 失败; SELinux

具有自定义样式的TextView导致奇怪的膨胀异常

如何创建具有多个后置摄像头的 android 模拟器

160个crackme 008 Andrénalin.1

160个crackme 009 Andrénalin.2

Xamarin.Forms:如何在 Xamarin.Forms 跨平台项目中开发具有蓝牙连接的应用程序?