运行后老说无法加载那个布局

运行后老说无法加载activity_fragment_one.xml这个布局
图片说明

 package com.example.weixi;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;

public class FragmentOne extends Fragment {
    private MyListView listOne = null;
    Context contexta;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        contexta=container.getContext();
        View view = inflater.inflate(R.layout.activity_fragment_one, container, false);

        listOne = (MyListView) view.findViewById(R.id.myList);

//需要循环输出的消息
        final String[] name = new String[]{
                "2017年腾讯微信新目标:干掉你钱包的实体会员卡",
                "苹果又获多个专利:这次针对智能键盘和防水",
                "无人驾驶汽车这一年:承诺、潜力和危险同在",
                "快讯:韩国认为高通垄断,处罚8.54亿美元",
                "《最终幻想》之父坂口博信透露新作消息:将于2017年发布",
                "发布在即:三星Galaxy C5 Pro获Wi-Fi认证",
                "底层谋生的萧条:那些被机器夺去工作的失业者们"};

        final String[] message = new String[]{
                "2017年腾讯微信新目标:干掉你钱包的实体会员卡",
                "苹果又获多个专利:这次针对智能键盘和防水",
                "无人驾驶汽车这一年:承诺、潜力和危险同在",
                "快讯:韩国认为高通垄断,处罚8.54亿美元",
                "《最终幻想》之父坂口博信透露新作消息:将于2017年发布",
                "发布在即:三星Galaxy C5 Pro获Wi-Fi认证",
                "底层谋生的萧条:那些被机器夺去工作的失业者们"};

      /*  final String[] message2=new String[]{"      12月28日消息,在今天上午的微信公开课Pro当中,腾讯微信工作人员表示,未来微信将会支持虚拟会员卡功能,对于商家来说将通过腾讯微信获得更为精确的用户大数据,将会员卡功能发挥到极致。\n" +
                "        通常我们在使用会员卡时,商家获得的个人信息存在由于隐私问题作假的问题,借助腾讯大数据,将会在保证隐私的前提下获得更为准确的用户数据,\n" +
                "        简化会员卡注册流程,实现会员卡的更多功能。",

                " 其实 iPad Pro 的 Smart Keyboard 已经是相当耐用了,不过很明显苹果希望它更具有吸引力,近日,苹果就获得了一项与 Smart Keyboard 相关的,专利号为 9527263 的“防污织物”专利。据悉,这个专利描绘了一个由非常规抗污染树脂所构成的防污层,其可以符合任何的纹理几何形状。苹果的目标是在 Smart Keyboard 表面添加这个防污层,而且添加防污层后,不会对 Smart Keyboard 的外观和使用感觉产生任何影响。\n" +
                        " 相信那些经常清理 Smart Keyboard 表面污迹的朋友,会很喜欢这个专利。 同时,苹果还取得了一个与防水相关的专利(专利号为 9529391),而这个专利所面对的对象看起来会是便携式电子设备。\n" +
                        "该专利其实是让便携式电子设备的密封物理按钮能有效的防止液体的进入。我们都知道现在的 iPhone ,还有 Apple Watch 都具备了防水功能,\n" +
                        "特别是新的 Apple Watch 2 ,我们终于可以佩戴着它去游泳。而今年的 iPhone 7 配置了防水功能以后也解决了不少用户的后顾之忧,不过我们也知道,iPhone 7 的防水功能其实还远远称不上完美,所以说,苹果当然希望继续拿下与防水有关的专利。\n" +
                        "不过还是那句话,取得专利和专利什么时候商用,完全是两码事,很多苹果获得的专利,最终都没有应用到相关的设备或者软件上,不知道苹果最新获得的这个专利,命运又会是怎么样的呢?",

                "外媒今日刊文指出,回首无人驾驶汽车技术在2016年的发展,关于这种新技术的承诺、潜力和危险纷纷浮现出来,今年确实是无人驾驶汽车的关键年度。现在,无人驾驶汽车已经不再是能否实现的问题,而是何时能够走进大众生活的问题。原文如下:\n" +
                        "\n" +
                        "各大媒体今年刊发了不少关于无人驾驶汽车和自动驾驶汽车的发展前景和潜力的文章,奇怪的是接近年底时却冒出一个不和谐的音调:Uber用一辆平板拖车将其数十辆测试用无人驾驶汽车运出了旧金山市。Uber前不久才信誓旦旦地宣布它将在家乡测试其无人驾驶汽车,然后迅速就被打脸,不得不收回它说的话,因为它用来测试的这批无人驾驶汽车似乎没有申请正确的牌照。\n" +
                        "\n" +
                        "这种所谓的未来交通工具甚至不允许驶出城镇,无人驾驶汽车的未来前景似乎并不怎么光明。但是经过一年的努力,无人驾驶汽车在技术、后勤和监管上均取得了突破性进展,包括Uber已经成功地在匹兹堡展开了试点项目,整个汽车行业也进入了你追我赶的疯狂模式,无人驾驶汽车的未来似乎比以往任何时候都更加光明了,照此看来,Uber在旧金山市的遭遇似乎并不能够算作失败,顶多算是一点小挫折。Uber只是无人驾驶汽车领域中的一员,还有很多像它这样的公司正在开发无人驾驶汽车技术并迅速取得了巨大进展,它们有可能改变我们的交通系统、城市规划以及经济系统。\n" +
                        "\n" +
                        "虽然无人驾驶汽车似乎还要很多年才能广泛普及,但是这项技术已经获得广泛的支持。现在,无人驾驶汽车已经不再是能否实现的问题,而是何时能够走进大众生活的问题。实现无人驾驶技术潜力的最大障碍也许不是计算机错误而是人为错误。下面我们就来看看无人驾驶技术在今年取得的重要进展。" ,

                "","","",""};*/

        final int[] photo = new int[]{R.drawable.abc_ic_clear, R.drawable.abc_ab_bottom_solid_dark_holo, R.drawable.abc_list_selector_holo_light,
                R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher};

  /*      final int[] photo2=new int[]{
                R.mipmap.wx_1,R.mipmap.wx_2,R.mipmap.wx_3,
                R.mipmap.wx_4,R.mipmap.wx_5,R.mipmap.wx_6,R.mipmap.wx_1};
*/
        List<MyEntity> myEntitys = new ArrayList<MyEntity>();


        MyEntity map1 = new MyEntity(R.drawable.abc_ic_clear,name[0]);
        myEntitys.add(map1);

        MyEntity map2 = new MyEntity(R.drawable.abc_ab_bottom_solid_dark_holo,name[1]);
        myEntitys.add(map2);

        MyEntity map3 = new MyEntity( R.drawable.abc_list_selector_holo_light,name[2]);
        myEntitys.add(map3);

        MyEntity map4 = new MyEntity(R.drawable.ic_launcher,name[3]);
        myEntitys.add(map4);

        MyEntity map5 = new MyEntity(R.drawable.ic_launcher,name[4]);
        myEntitys.add(map5);

        MyEntity map6 = new MyEntity(R.drawable.ic_launcher,name[5]);
        myEntitys.add(map6);

        MyEntity map7 = new MyEntity(R.drawable.ic_launcher,name[6]);
        myEntitys.add(map7);

//传参到listview表,标题
        listOne.setAdapter(new MyAdapter(contexta,R.layout.listview_item,myEntitys));
        listOne.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

                Bundle bundle = new Bundle();
                bundle.putInt("photo", photo[arg2]);
                bundle.putString("message", message[arg2]);

       /*         bundle.putString("message2", message2[arg2]);
                bundle.putInt("photo2",photo2[arg2]);
*/
                Intent intent = new Intent();
                intent.putExtras(bundle);

                //intent.setClass(getActivity(), MoveList.class);

                Log.i("message", message[arg2]);

 /*               Log.i("message2", message2[arg2]); */
               // startActivity(intent);
            }
        });
        return view;
    }

}

图片说明

7个回答

你获得Application全局变量试试

YXTS122
YXTS122 回复ziyejinwei1994:谢谢,问题解决了,把contexta=container.getContext();这条语句改为contexta=getActivity();就可以运行了。。。。。
接近 3 年之前 回复
YXTS122
YXTS122 回复ziyejinwei1994:谢谢,问题解决了,把contexta=container.getContext();这条语句改为contexta=getActivity();就可以运行了。。。。。
接近 3 年之前 回复

MyAdapter.java

 package com.example.weixi;


import java.util.List;

import android.content.Context;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyAdapter extends ArrayAdapter<MyEntity> {

    private int mResourceId;
    MyEntity myEntity;

    public MyAdapter(Context context, int resource, List<MyEntity> objects) {
        super(context, resource, objects);
        mResourceId = resource;

    }

    @NonNull
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        myEntity=getItem(position);
        View view = null;
        ViewHolder viewHolder = null;
        if (convertView == null) {
            view = LayoutInflater.from(getContext()).inflate(mResourceId, null);
            viewHolder = new ViewHolder();
            viewHolder.img=(ImageView)view.findViewById(R.id.image);
            viewHolder.tv=(TextView)view.findViewById(R.id.name);


            //在此处获取你的View中控件实例  eg: viewHolder.img = (ImageView)view.findViewById(R.id.img);

            view.setTag(viewHolder);
        } else {
            view = convertView;
            viewHolder=(ViewHolder)view.getTag();
        }
        initView(viewHolder);

        return view;
    }


    private void initView(ViewHolder viewHolder) {
        //初始你的view
        viewHolder.img.setVisibility(View.VISIBLE);
        viewHolder.tv.setVisibility(View.VISIBLE);
        viewHolder.img.setImageResource(myEntity.getImgId());
        viewHolder.tv.setText(myEntity.getMsg());

    }


    public class ViewHolder {
        ImageView img;
        TextView tv;
        //你的view中的控件
    }
}

MyEntity.java

 package com.example.weixi;

public class MyEntity {
    int ImgId;
    String msg;

    public MyEntity(int imgId,String msg)
    {
        this.ImgId = imgId;
        this.msg = msg;
    }
    public int getImgId() {
        return ImgId;
    }

    public void setImgId(int imgId) {
        this.ImgId = imgId;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }


}

MyListView.java

 package com.example.weixi;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.BaseAdapter;
import android.widget.ListView;

public class MyListView extends ListView {  

    private BaseAdapter mSelfAdapter;  

    public MyListView(Context context) {  
        super(context);  
    }  

    public MyListView(Context context, AttributeSet attributeSet) {  
        super(context, attributeSet);  
    }  

    /** 
     * 删除ListView中上一次渲染的View,并添加新View。 
     */  
    private void buildList() {  
        if (mSelfAdapter == null) {  

        }  

        if (getChildCount() > 0) {  
            removeAllViews();  
        }  

        int count = mSelfAdapter.getCount();  

        for(int i = 0 ; i < count ; i++) {  
            View view = mSelfAdapter.getView(i, null, null);  
            if (view != null) {  
                addView(view, i);  
            }  
        }  
    }  

    public BaseAdapter getSelfAdapter() {  
        return mSelfAdapter;  
    }  

    /** 
     * 设置Adapter。 
     *  
     * @param selfAdapter 
     */  
    public void setSelfAdapter(BaseAdapter selfAdapter) {  
        this.mSelfAdapter = selfAdapter;  
        buildList();  
    }  

}  

MainActivity.java

 package com.example.weixi;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends FragmentActivity {

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

图片说明
图片说明
图片说明
图片说明

你具体报错的地方,在哪一句话?

YXTS122
YXTS122 执行contexta=container.getContext();这个时报错了
接近 3 年之前 回复

执行contexta=container.getContext();这个时报错了
图片说明

xml文件的第八行代码出了错误 仔细看一下吧!

不在Activity 里面的 需要getactivity

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android开发eclipse导入design,运行时出错无法加载布局
xml代码如下 ``` <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.design.widget.TabLayout android:id="@+id/tablayout" android:layout_width="match_parent" android:layout_height="wrap_content" /> </RelativeLayout> ``` 当运行时,就会报错 Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.design.widget.TabLayout design包导入正确,java代码中也能使用,将design作为依赖项目也试过,都是着这样,请问各位大侠这是怎么回事~~~~(>_<)~~~~
ListView加载surfaceView
用retrofit下载得到json数据,然后用GsonFormat解析得到bean,bean里面包含Gson解析方法,然后在Adapter里面加载布局,给布局的相关控件设置bean里面相应的内容,但是布局加载进去了,运行时控件无法显示出来。Log打印Json数据已经下载下来了
Android 布局在模拟器中无法完全显示
在做一个2048游戏的联系项目。在布局文件中,Gridlayout中添加了GameView,GameView中有一个卡片类 在简单的完成后,在模拟器中没有卡片显示,游戏分数依然发生相应的变化。 卡片类加载显示成功,却没有显示在GameView上。游戏功能使用正常。 匪夷所思... ![运行截图](https://img-ask.csdn.net/upload/201802/26/1519634563_693742.jpg) ![布局xml](https://img-ask.csdn.net/upload/201802/26/1519634596_736632.jpg) ![card类](https://img-ask.csdn.net/upload/201802/26/1519634613_747193.jpg)
求助大神android 布局文件中的fitsystemwindows是的运行机制
项目中有用到需要将app的手机状态栏设置成和标题栏一样的颜色,使用了github上的一个库去设置了颜色,并在布局文件中使用了fitsystemwindows="true",该动作在第一次setcontentview的时候时起作用的,我的使用场景是在检测到有网络的时候正常加载界面,没有网络的时候就加载无网络提示的界面,难点来了,在没有网络的时候加载无网络提示界面显示正常,但打开网络,点击重试同时去加载正常界面的时候感觉好像是fitsystemwindows=true的属性不起作用了,标题被状态栏挡住了。并且还有一个网络监听的机制,监听到有网络的时候同时也是跳转到加载数据的界面,同样的问题 ![图片说明](https://img-ask.csdn.net/upload/201611/11/1478849117_944323.png) ![图片说明](https://img-ask.csdn.net/upload/201611/11/1478849163_214911.png)
安卓资源文件加载不上
过程是这样的:今天和同事合代码,我将我的资源文件,布局文件和逻辑代码通过svn上传给他,他和完代码之后,一切正常。但是当运行的时候,当运行到我提交代码的逻辑的时候程序就死了。但是程序在我电脑上运行好好的。 经过排查,问题发现在布局文件上,同事将布局文件改名,后将之前的布局文件替换,程序正常运行。我们的命名eg:hello_hehe;这种结构,即代下划线。重命名的时候我们将下划线去掉,然后就可一加载了。不知到原理和为什么,求大神告知原因。 我用的系统为:ubuntu12 eclipse:4.2.0 jdk:1.7.0.9
小菜鸟级:Android创建和加载布局问题
照第一行代码敲的,发现根本不能运行,故来请教各位大神。 首先布局文件first_layout.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string Button 1" /> </LinearLayout> 其次firstActivity.java中: package com.example.activitytest; import android.app.Activity; import android.os.Bundle; public class FirstActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.first_layout); } } 最后AndroidMainfest中: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.activitytest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/Button 1" android:theme="@style/AppTheme" > <activity android:name=".FirstActivity" android:label="This is FirstActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest> 代码如上,但却不能运行,错误怎么纠正呢?
android里关于布局文件里控件的设计
在.xml文件里的控件是否可以任意修改一个控件相对于其他控件的位置? 在期间遇到了一个问题,控件位置修改之前还可以运行,但修改了控件的位置后 运行时应用程序就加载出错了,请问这是为什么?
每次进入一个fragment时,自动刷新该fragment
我做了个类似于微博布局的demo。但是运行登陆界面时,fragment就已经加载了。我希望实现的是:fragment,只在点击该fragmeng进去才开始加载数据,不点击就不要加载,同时第二次点击fragment会有刷新功能。。希望各位大虾们提供思路。
DevExpress使用DockManager添加DockPanel,控件消失不见了
C# WInFrom中使用DevExpress中 DockManager布局控件,添加一个DockPanel页然后在该页中添加一些控件。然后使用 SaveLayoutToXml方法保存该控件的布局到XML文件中;之后利用RestoreLayoutFromXml加载该XML文件布局视图,结果DockPanel页中的控件消失不见了。关键一样的过程前5个Panel都能正常显示,再添加新的DockPanel运行后点击别的视图,再加载回来怎么也不显示控件。貌似是它在原位置使用原标题自动生成了一个新的DockPanel。 多谢
PyQt5计时器QTimer的停止和重启
由于我有一个耗时的子程序,所以我想用QTimer()加上进度条的方法优化用户的等待时间, 但是,当我初始化计时器,并start()后,发现相关的超时槽函数并没有触发,这是为什么了? ```python """创建一个带提示的进度条""" from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * import sys import time class MyProgressBar(QWidget): def __init__(self,showMessage = "提示信息",parent = None): super(MyProgressBar, self).__init__(parent) self.message = showMessage self.setWindowTitle("加载数据") self.pbar = QProgressBar() # 构建一个进度条 self.label = QLabel() # 添加到布局 self.layout = QVBoxLayout() self.setLayout(self.layout) self.layout.addWidget(self.label) # 提示信息 self.layout.addWidget(self.pbar) # 进度条 self.label.setText(self.message) self.timer = QTimer(self) # 初始化一个时钟 self.step = 0 # 进度条的值 self.timer.start(50) self.timer.timeout.connect(self.update) self.show() #self.setWindowFlags(Qt.WindowStaysOnTopHint) def setMessage(self,message): """重新设置信息,并重启进度条""" print(self.timer.isActive()) self.message = message self.step = 0 if not self.timer.isActive(): self.timer.start(50) self.show() def callback(self, signal): print("调用回调函数",signal) if signal is False: return if self.timer.isActive(): # 当前正在运行 self.pbar.setValue(100) self.timer.stop() self.step = 0 # 重置 QMessageBox.information( self, "提示", "{},已经完成".format(self.message), QMessageBox.Yes | QMessageBox.No ) #self.setWindowModality(Qt.NonModal) self.hide() def update(self): print("调用的时钟事件") self.pbar.setValue(self.step) # 赋新值 if self.step >= 100: # 停止进度条 self.timer.stop() self.step = 0 # 卡在99%,等后台程序运行完成则到100% elif self.step < 99: self.step += 1 def worker(): time.sleep(5) if __name__ == '__main__': app = QApplication(sys.argv) myui = MyProgressBar(showMessage="第一次") worker() # 模拟耗时程序 myui.callback(True) # time.sleep(1) # myui.setMessage("第二次") # time.sleep(5) # myui.callback(True) sys.exit(app.exec_()) ``` 而且,发现删除耗时程序`worker()`和回调函数后,进度条能一直到99%并卡住?
vs2012如何在不允许程序的情况下查看窗体的设计情况
vs2012有没有办法在不允许程序的情况下查看窗口的设计情况? 比如这样一个窗口: ![图片说明](https://img-ask.csdn.net/upload/201801/16/1516108616_341329.png) 一般情况我们就是点击运行按钮看窗口的具体布局之类的信息,我是想在不点击运行的情况下有没有直接可以预览这个窗体的设计情况? 这里面不能像易语言的窗体设计那样直接点击左上角的预览按钮就可以在不编译运行程序的情况下加载窗体吗?如下图: ![图片说明](https://img-ask.csdn.net/upload/201801/16/1516111015_523480.gif)
当向Bitmap对象加载图片时,出现奇怪内存不够问题。
我不确定从哪开始解释这个问题。 在每一行,我有一个带着一对图片按钮的列表视图。当你点击列表行,它加载一个新的控件。因为照相机布局的问题我不得不建立我新的tab。这个控件加载完成的结果是一个地图。如果我点击我的按钮来加载图片预览(从SD卡加载一个图片)应用程序从这个控件返回到列表视图控件,导致结果处理器重新加载我的新的控件,那个不过就是一个图像的小部件。 所以这就是问题,图片显示在列表视图的时候都是带着光标和列表转换器的。这使得它相当的简单,但是我不确定我怎么能够调整大小(IE下有一点小,但是不是像素的关心)图片作为图片按钮的源文件在起作用。所以我只是调整了来自于手机、相机的照片的大小。 这个问题就是当它试图返回重新加载第二个控件的时候出现了内存不足的问题。 我的问题:是否有方法让我可以逐行创建列表转换器,那样我可以调整在运行中的图片的大小(按位)?这将是合适的,因为我还需要给每一行的小工具/元素做一些属性的改变,为了我不能在触摸屏的编辑选择有焦点的一行(我可以使用滚动条)。 我知道我可以做一个不同频道信号传输来改变图片大小,并保存我的图片,但是这真的不是我想要做的,但是如果你能够给一些建议的示例代码那将是很好的。 我是这样做的 String[] from = new String[] { DBHelper.KEY_BUSINESSNAME, DBHelper.KEY_ADDRESS, DBHelper.KEY_CITY, DBHelper.KEY_GPSLONG, DBHelper.KEY_GPSLAT, DBHelper.KEY_IMAGEFILENAME + ""}; to = new int[] { R.id.businessname, R.id.address, R.id.city, R.id.gpslong, R.id.gpslat, R.id.imagefilename }; notes = new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to); setListAdapter(notes); Where R.id.imagefilename is a ButtonImage R.id.imagefilename是一个按钮图片 这是我的日志 09-13 05:05:49.877: ERROR/dalvikvm-heap(3896): 6291456-byte external allocation too large for this process. 09-13 05:05:49.877: ERROR/(3896): VM wont let us allocate 6291456 bytes 09-13 05:05:49.877: ERROR/AndroidRuntime(3896): Uncaught handler: thread main exiting due to uncaught exception 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): java.lang.OutOfMemoryError: bitmap size exceeds VM budget 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:304) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:149) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:174) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.graphics.drawable.Drawable.createFromPath(Drawable.java:729) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.ImageView.resolveUri(ImageView.java:484) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.ImageView.setImageURI(ImageView.java:281) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.SimpleCursorAdapter.setViewImage(SimpleCursorAdapter.java:183) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.SimpleCursorAdapter.bindView(SimpleCursorAdapter.java:129) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.CursorAdapter.getView(CursorAdapter.java:150) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.AbsListView.obtainView(AbsListView.java:1057) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.ListView.makeAndAddView(ListView.java:1616) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.ListView.fillSpecific(ListView.java:1177) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.ListView.layoutChildren(ListView.java:1454) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.AbsListView.onLayout(AbsListView.java:937) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.View.layout(View.java:5611) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1108) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.onLayout(LinearLayout.java:922) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.View.layout(View.java:5611) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.FrameLayout.onLayout(FrameLayout.java:294) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.View.layout(View.java:5611) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:999) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.LinearLayout.onLayout(LinearLayout.java:920) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.View.layout(View.java:5611) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.widget.FrameLayout.onLayout(FrameLayout.java:294) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.View.layout(View.java:5611) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.ViewRoot.performTraversals(ViewRoot.java:771) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.view.ViewRoot.handleMessage(ViewRoot.java:1103) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.os.Handler.dispatchMessage(Handler.java:88) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.os.Looper.loop(Looper.java:123) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at android.app.ActivityThread.main(ActivityThread.java:3742) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at java.lang.reflect.Method.invokeNative(Native Method) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at java.lang.reflect.Method.invoke(Method.java:515) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497) 09-13 05:05:49.917: ERROR/AndroidRuntime(3896): at dalvik.system.NativeStart.main(Native Method) 09-13 05:10:01.127: ERROR/AndroidRuntime(3943): ERROR: thread attach failed 当显示一个图片的时候我又有了一个新问题 09-13 22:13:18.594: DEBUG/skia(4204): xxxxxxxxxxx jpeg error 20 Improper call to JPEG library in state %d 09-13 22:13:18.604: INFO/System.out(4204): resolveUri failed on bad bitmap uri: 09-13 22:13:18.694: ERROR/dalvikvm-heap(4204): 6291456-byte external allocation too large for this process. 09-13 22:13:18.694: ERROR/(4204): VM won't let us allocate 6291456 bytes 09-13 22:13:18.694: DEBUG/skia(4204): xxxxxxxxxxxxxxxxxxxx allocPixelRef failed
FragmentActivity被销毁了,怎么销毁与之相关的Fragment
是这样的,我写了一个Activity,继承的是FragmentActivity,里面用到了FragmentTabHost,用FragmentTabHost加载了四个fragment, 每个fragment里面都有listview或者是viewpager,但是我发现,当我进入这个activity之后,马上点击back键,程序就会崩掉,原因是每个fragment里面的listview都设置了adapter,adpater里面加载布局时都会用到Context,而就是Context这热力报了null的错误,网上说改写FragmentActivity的onsaveInsatanceState方法,注释掉即可,但是没用,adapter还是运行到了那一步,还是崩掉了。请问有没有什么好方法来管理这些fragment啊?
安卓布局资源找不到的异常
代码中是不报错的,运行加载页面时就报错崩溃,感觉引用也没错,如图,有大神解答下吗![图片说明](https://img-ask.csdn.net/upload/201707/13/1499934824_969695.png)![图片说明](https://img-ask.csdn.net/upload/201707/13/1499934829_70131.png)
Android ListView重复加载的问题
我建立一个 ListViewView,并重写了自己的 adapter(继承BaseAdapter),数据源是一个ArrayList. ,ArrayList里的数据是 1,2,3。当我初始化 ListView时,显示的是 1,2,3。 以上看起来非常正常,但当我按 后退键,然后重新 进入 ListView的时候,诡异的事情就发生了。。 当我第二次进入 ListView的时候,屏幕上显示的 数据 成了 1,2,3, 1,2,3 . 然后我按下 后退键,再进入 ListView, 屏幕上的 数据 成了 1,2,3, 1,2,3 ,1,2,3 如此循环往复。。总之,每次进入ListView,都得重新读取ArrayList的数据。请问是什么原因导致的呢? 以下是adapter源码 public class chatListAdapter extends BaseAdapter{ private Context context; //运行上下文 private List<Map<String, Object>> listItems; //联系人信息集合 private LayoutInflater listContainer; //视图容器 private boolean[] hasChecked; //记录联系人选中状态 public final class ListItemView{ //自定义控件集合 public TextView RemoteAudio; public TextView LocalAudio; public TextView RemoteId; public TextView LocalId; public TextView MessageType; public ImageView RemoteImage; public ImageView LocalImage; public TextView RemoteSay; public TextView LocalSay; } public chatListAdapter(Context context, List<Map<String, Object>> listItems) { Log.v("construtor", "constructor11"); this.context = context; listContainer = LayoutInflater.from(context); //创建视图容器并设置上下文 this.listItems = listItems; hasChecked = new boolean[getCount()]; } @Override public int getCount() { // TODO Auto-generated method stub return listItems.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup viewGroup) { // TODO Auto-generated method stub Log.v("getview","getview11"); final int selectID = position; ListItemView listItemView = null; listItemView = new ListItemView(); if (convertView == null) { //获取list_item布局文件的视图 convertView = listContainer.inflate(R.layout.chat_list_item, null); //获取控件对象 listItemView.RemoteAudio = (TextView)convertView.findViewById(R.id.RemoteAudio); listItemView.LocalAudio = (TextView)convertView.findViewById(R.id.LocalAudio); listItemView.RemoteId = (TextView)convertView.findViewById(R.id.RemoteId); listItemView.LocalId = (TextView)convertView.findViewById(R.id.LocalId); listItemView.MessageType= (TextView)convertView.findViewById(R.id.MessageType); listItemView.RemoteImage = (ImageView)convertView.findViewById(R.id.RemoteImage); listItemView.LocalImage=(ImageView)convertView.findViewById(R.id.RemoteImage); listItemView.RemoteSay=(TextView)convertView.findViewById(R.id.RemoteSay); listItemView.LocalSay=(TextView)convertView.findViewById(R.id.LocalSay); //设置控件集到convertView convertView.setTag(listItemView); }else{listItemView=(ListItemView)convertView.getTag();} //set rma,lca,mst,rid,lid into invisible //put data from list into view String strPosition=""+position; int RR=0; RR++; Log.v("11aa21","RR"+RR); listItemView.RemoteId.setText((String)listItems.get(position).get("RemoteId")); // String idd=Regist.generateId(); // listItemView.RemoteId.setText(" "+idd+" "); Log.v("11aa21","PositionI"+strPosition); Log.v("RemoteID","Remote+"+(String)listItems.get(position).get("RemoteId")); listItemView.LocalId.setText((String) listItems.get(position).get("LocalId")); Log.v("11aa21","PositionI"+strPosition); Log.v("RemoteID","LocalID+"+(String)listItems.get(position).get("LocalId")); //// listItemView.RemoteAudio.setText((String)listItems.get(position).get("RemoteAudio")); listItemView.LocalAudio.setText((String)listItems.get(position).get("LocalAudio")); //// listItemView.MessageType.setText((String)listItems.get(position).get("MessageType")); /// listItemView.RemoteImage.setBackgroundResource(R.drawable.ic_launcher); listItemView.LocalImage.setBackgroundResource(R.drawable.ic_launcher); /// listItemView.RemoteSay.setText((String)listItems.get(position).get("RemoteSay")); listItemView.LocalSay.setText((String)listItems.get(position).get("LocalSay")); // String idd=Regist.generateId(); // listItemView.LocalSay.setText(idd); // listItemView.RemoteSay.setText("rms"+position); Log.i("tttt","ttttt"+listItemView.LocalSay.getText().toString()); //decide wether Ls,LI,RS,RI invisible //if msgtype=??,then set..invisible,set XX onclick method=?? String MsgType=listItemView.MessageType.getText().toString(); Log.i("msgt",MsgType); if (MsgType.equals("9d")){ Log.v("MsgType", "Text"); listItemView.LocalSay.setVisibility(View.INVISIBLE); listItemView.LocalImage.setVisibility(View.INVISIBLE); listItemView.RemoteSay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Log.v("1ab",((TextView) v).getText().toString()); Toast.makeText(null, "111",Toast.LENGTH_LONG).show(); } }); } return convertView; } }
给一个Button设置了selector 作为背景,运行运行就闪退
主布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/btn_retry" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/selector" android:text="加载失败,请重试" android:textColor="#000" /> </LinearLayout> selector文件: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/> <item android:drawable="@drawable/btn_normal" /> </selector> 其中btn_pressed btn_normal 是两张.9图
利用bmob加载数据到listview上,出现问题,求解决啊
使用bmob的菜鸟,写了一个利用bmob把图文数据加载到listview的代码,图片文件是用的bmobfile,我是通过获取它的URL然后进行网络图片下载来加载图片的,但是运行出错了,求解决啊 adapter的代码: public class ClassListAdapter extends BaseAdapter { private Context mContext; private LayoutInflater mInflater = null;// LayoutInflater作用是将layout的xml布局文件实例化为View类对象 private ArrayList<ClassInfo> mClassList = null; // 所选分类下的所有列表 public ClassListAdapter(Context context, ArrayList<ClassInfo> classList) { setmContext(context); mClassList = classList; mInflater = LayoutInflater.from(context); } @Override public int getCount() { return mClassList.size(); } @Override public Object getItem(int position) { return mClassList.get(position); } @Override public long getItemId(int position) { return position; } public void refresh(ArrayList<ClassInfo> list) { mClassList = list; notifyDataSetChanged(); } @Override public View getView(int position, View convertView, ViewGroup parent) { ClassHolder classHodler; if (convertView == null) { convertView = mInflater.inflate(R.layout.list_class_item, null); classHodler = new ClassHolder(); classHodler.tvClassName = (TextView) convertView .findViewById(R.id.tv_cn); classHodler.tvDate = (TextView) convertView .findViewById(R.id.tv_date); classHodler.ivClassPic = (ImageView) convertView .findViewById(R.id.class_pic); convertView.setTag(classHodler); } else { classHodler = (ClassHolder) convertView.getTag(); } classHodler.tvClassName.setText(mClassList.get(position).getCname()); classHodler.tvDate.setText(mClassList.get(position).getDate()); String url = mClassList.get(position).getCpic().getFileUrl(); classHodler.ivClassPic.setTag(url); new ImageLoader().showImageByThread(classHodler.ivClassPic, url); return convertView; } public Context getmContext() { return mContext; } public void setmContext(Context mContext) { this.mContext = mContext; } } listactivity的代码: public class ClassActivity extends Activity implements OnItemClickListener { private static final String TAG = "ClassActivity"; private ListView classListView; private ArrayList<ClassInfo> classList = new ArrayList<ClassInfo>(); private ClassListAdapter mClassListAdapter; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_class_all); initView(); initEvent(); } private void initEvent() { // TODO Auto-generated method stub mClassListAdapter = new ClassListAdapter(this, classList); classListView.setAdapter(mClassListAdapter); classListView.setOnItemClickListener(this); getClassData(); } private void initView() { // TODO Auto-generated method stub classListView = (ListView) findViewById(R.id.lv_class_all); } private void getClassData() { // TODO Auto-generated method stub BmobQuery<ClassInfo> query = new BmobQuery<ClassInfo>(); query.order("-updatedAt"); query.findObjects(this, new FindListener<ClassInfo>() { @Override public void onSuccess(final List<ClassInfo> object) { classList = (ArrayList<ClassInfo>) object; mClassListAdapter.refresh((ArrayList<ClassInfo>) classList); mClassListAdapter.notifyDataSetChanged(); } @Override public void onError(String arg0) { toast("获取数据失败了"); } }); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent toClassDetail = new Intent(ClassActivity.this, ClassDetailActivity.class); toClassDetail.putExtra("ClassName", classList.get(position).getCname()); toClassDetail.putExtra("ClassTeacherObjectId", classList.get(position) .getTobjectid()); toClassDetail.putExtra("ClassDate", classList.get(position).getDate()); toClassDetail.putExtra("ClassTime", classList.get(position).getTime()); toClassDetail.putExtra("ClassInfo", classList.get(position).getCinfo()); toClassDetail.putExtra("ClassPic", classList.get(position).getCpic() .getFileUrl()); startActivity(toClassDetail); } public void toast(String toast) { Toast.makeText(this, toast, Toast.LENGTH_SHORT); } } 这是运行时报的错 05-19 04:26:48.082: W/Zygote(25337): mz_is_rooted false 05-19 04:26:48.088: I/art(25337): Late-enabling -Xcheck:jni 05-19 04:26:48.153: E/art(25337): Failed sending reply to debugger: Broken pipe 05-19 04:26:48.153: I/art(25337): Debugger is no longer active 05-19 04:26:48.386: I/art(25337): Background sticky concurrent mark sweep GC freed 1718(102KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 41MB/41MB, paused 8.769ms total 20.573ms 05-19 04:26:48.835: E/GED(25337): Failed to get GED Log Buf, err(0) 05-19 04:26:48.837: I/art(25337): Background partial concurrent mark sweep GC freed 36(1912B) AllocSpace objects, 0(0B) LOS objects, 7% free, 50MB/54MB, paused 6.827ms total 24.126ms 05-19 04:26:48.851: I/OpenGLRenderer(25337): Initialized EGL, version 1.4 05-19 04:26:48.851: W/OpenGLRenderer(25337): Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... 05-19 04:26:48.867: I/OpenGLRenderer(25337): Initializing program atlas... 05-19 04:26:53.154: W/IInputConnectionWrapper(25337): clearMetaKeyStates on inactive InputConnection 05-19 04:26:56.365: E/MPlugin(25337): Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport 05-19 04:26:56.379: E/WifiManager(25337): mWifiServiceMessenger == null 05-19 04:26:56.409: I/System.out(25337): url:http://open.bmob.cn/7/login 05-19 04:26:56.415: D/libc-netbsd(25337): [getaddrinfo]: hostname=open.bmob.cn; servname=(null); cache_mode=(null), netid=0; mark=0 05-19 04:26:56.415: D/libc-netbsd(25337): [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0 05-19 04:26:56.416: D/libc-netbsd(25337): [getaddrinfo]: hostname=open.bmob.cn; servname=(null); cache_mode=(null), netid=0; mark=0 05-19 04:26:56.416: D/libc-netbsd(25337): [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=1024; ai_family=0 05-19 04:26:56.476: D/libc-netbsd(25337): getaddrinfo: open.bmob.cn get result from proxy >> 05-19 04:26:56.476: I/System.out(25337): propertyValue:true 05-19 04:26:56.478: I/System.out(25337): [CDS]connect[open.bmob.cn/123.59.85.59:80] tm:2 05-19 04:26:56.545: I/System.out(25337): [OkHttp] sendRequest>> 05-19 04:26:56.545: I/System.out(25337): [OkHttp] sendRequest<< 05-19 04:26:56.609: I/NetworkManagementSocketTagger(25337): untagSocket(39) 05-19 04:26:56.799: E/MPlugin(25337): Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport 05-19 04:26:56.806: E/WifiManager(25337): mWifiServiceMessenger == null 05-19 04:26:56.820: I/System.out(25337): url:http://open.bmob.cn/7/find 05-19 04:26:56.849: I/System.out(25337): [CDS]EAGAIN in Recvfrom 05-19 04:26:56.849: I/System.out(25337): [CDS]read byte is 0 05-19 04:26:56.849: I/System.out(25337): [OkHttp] sendRequest>> 05-19 04:26:56.850: I/System.out(25337): [OkHttp] sendRequest<< 05-19 04:26:56.921: I/NetworkManagementSocketTagger(25337): untagSocket(39) 05-19 04:26:56.994: E/AndroidRuntime(25337): FATAL EXCEPTION: main 05-19 04:26:56.994: E/AndroidRuntime(25337): Process: com.keke.doexercise, PID: 25337 05-19 04:26:56.994: E/AndroidRuntime(25337): g.Hamlet: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 176 05-19 04:26:56.994: E/AndroidRuntime(25337): at j.Though$This.Code(SourceFile:176) 05-19 04:26:56.994: E/AndroidRuntime(25337): at g.Tempest.Code(SourceFile:803) 05-19 04:26:56.994: E/AndroidRuntime(25337): at g.Tempest.Code(SourceFile:717) 05-19 04:26:56.994: E/AndroidRuntime(25337): at cn.bmob.v3.requestmanager.thing$3.Code(SourceFile:1) 05-19 04:26:56.994: E/AndroidRuntime(25337): at cn.bmob.v3.requestmanager.This.V(SourceFile:1) 05-19 04:26:56.994: E/AndroidRuntime(25337): at e.I.run(SourceFile:99) 05-19 04:26:56.994: E/AndroidRuntime(25337): at android.os.Handler.handleCallback(Handler.java:815) 05-19 04:26:56.994: E/AndroidRuntime(25337): at android.os.Handler.dispatchMessage(Handler.java:104) 05-19 04:26:56.994: E/AndroidRuntime(25337): at android.os.Looper.loop(Looper.java:194) 05-19 04:26:56.994: E/AndroidRuntime(25337): at android.app.ActivityThread.main(ActivityThread.java:5779) 05-19 04:26:56.994: E/AndroidRuntime(25337): at java.lang.reflect.Method.invoke(Native Method) 05-19 04:26:56.994: E/AndroidRuntime(25337): at java.lang.reflect.Method.invoke(Method.java:372) 05-19 04:26:56.994: E/AndroidRuntime(25337): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1005) 05-19 04:26:56.994: E/AndroidRuntime(25337): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:800) 05-19 04:26:56.994: E/AndroidRuntime(25337): Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 176 05-19 04:26:56.994: E/AndroidRuntime(25337): at l.This.beginArray(SourceFile:338) 05-19 04:26:56.994: E/AndroidRuntime(25337): at j.of$This.Code(SourceFile:1) 05-19 04:26:56.994: E/AndroidRuntime(25337): at j.Though$1.Code(SourceFile:93) 05-19 04:26:56.994: E/AndroidRuntime(25337): at j.Though$This.Code(SourceFile:172) 05-19 04:26:56.994: E/AndroidRuntime(25337): ... 13 more 05-19 04:26:57.004: I/Process(25337): Sending signal. PID: 25337 SIG: 9 05-19 04:26:58.048: I/art(25443): Background sticky concurrent mark sweep GC freed 701(46KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 50MB/50MB, paused 5.901ms total 15.544ms 05-19 04:26:58.051: E/GED(25443): Failed to get GED Log Buf, err(0) 05-19 04:26:58.068: I/OpenGLRenderer(25443): Initialized EGL, version 1.4 05-19 04:26:58.069: W/OpenGLRenderer(25443): Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... 05-19 04:26:58.084: I/OpenGLRenderer(25443): Initializing program atlas... 05-19 04:27:29.607: W/IInputConnectionWrapper(25443): showStatusIcon on inactive InputConnection
自学Android开发 在模拟器运行闪退
初学者自写的程序 ,但是在模拟器下运行闪退!!该怎么改呀?? package com.example.work3; import java.util.ArrayList; import java.util.List; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.annotation.SuppressLint; import android.app.AlertDialog; import android.app.TabActivity; import android.content.DialogInterface; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.StrictMode; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.Spinner; import android.widget.TabHost; import android.widget.TextView; import android.os.Build; public class MainActivity extends TabActivity { private TabHost tabhost; private ListView listview; private ArrayAdapter<String> arr_adapter; private Spinner spinner; private List<String>list; private ArrayAdapter<String> adapter; private EditText et1,et2; private Button bt; String name; String value; String style; @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); et1=(EditText) findViewById(R.id.editText1); et2=(EditText) findViewById(R.id.editText2); bt=(Button) findViewById(R.id.button1); setContentView(R.layout.activity_main); tabhost=getTabHost(); tabhost.addTab(tabhost.newTabSpec("菜单一").setIndicator("首页").setContent(R.id.tab1)); tabhost.addTab(tabhost.newTabSpec("菜单二").setIndicator("新增").setContent(R.id.tab2)); tabhost.addTab(tabhost.newTabSpec("菜单三").setIndicator("账单").setContent(R.id.tab3)); //按钮监听 提取信息 bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub name = et1.getText().toString(); value = et2.getText().toString(); style = spinner.getSelectedItem().toString(); } }); listview = (ListView) findViewById(R.id.listview); //新建适配器 String[]arr_data={"数据1","数据2","数据3","数据4","数据5"}; //ArrayAdapter(上下文,当前ListView加载的每一个列表项所对应的布局文件,数据源) arr_adapter =new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,arr_data); listview.setAdapter(arr_adapter); spinner=(Spinner) findViewById(R.id.spinner); //数据源 String[]list = {"1.日常食品支出","2.人情世故支出","3.出差旅游支出","4.服饰鞋帽支出","5.生活用品支出","6.其他支出"}; //新建适配器 adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list); //设置下拉样式 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //加载适配器 spinner.setAdapter(adapter); } //退出对话框 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK ) { // 创建退出对话框 AlertDialog isExit = new AlertDialog.Builder(this).create(); // 设置对话框标题 isExit.setTitle("系统提示"); // 设置对话框消息 isExit.setMessage("确定要退出吗"); // 添加选择按钮并注册监听 isExit.setButton("确定", listener); isExit.setButton2("取消", listener); // 显示对话框 isExit.show(); } return false; } /**监听对话框里面的button点击事件*/ DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { switch (which) { case AlertDialog.BUTTON_POSITIVE:// "确认"按钮退出程序 finish(); break; case AlertDialog.BUTTON_NEGATIVE:// "取消"第二个按钮取消对话框 break; default: break; } } }; }
安卓中的viewpager用view填充页面,时间处理怎么办?
最近做了一个项目,用到一个viewpager,我知道可以用两种方式填充每个页面,fragment和view,我图方便,采用了view的方式,可是当我控件都加载在每个view的布局文件里面的时候,我发现,我不能处理他们的事件,比如说我在某一页中有一个imageview,我要点击它并换掉他的背景,我就在主要的mainactivity.java中初始化了控件并设置了点击事件,此时运行后程序崩溃,我分析一遍觉得是在主maniactivity中这样写,view不可能得到改变,因为它在程序运行初期就已经在oncreate中被添加到了list<view>中,后面再怎么处理都不可能被改变,除非只是做一些展示作用,比如放几张照片之类的. 而对于我的项目,我需要处理每一页的很多点击事件,而又不可能只在一个mainacticity中实现,所以我觉的我是不是该改用fragment的方式去实现我的目的,请大神能给一个合理的说明,如果可以,请帮忙说下view和fragment的处理事件都应该怎么搞,另外我想知道正常的项目中包应该如何划分?多谢啦
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
python自动下载图片
近日闲来无事,总有一种无形的力量萦绕在朕身边,让朕精神涣散,昏昏欲睡。 可是,像朕这么有职业操守的社畜怎么能在上班期间睡瞌睡呢,我不禁陷入了沉思。。。。 突然旁边的IOS同事问:‘嘿,兄弟,我发现一个网站的图片很有意思啊,能不能帮我保存下来提升我的开发灵感?’ 作为一个坚强的社畜怎么能说自己不行呢,当时朕就不假思索的答应:‘oh, It’s simple. Wait for me for a ...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
C++(数据结构与算法):62---搜索树(二叉搜索树、索引二叉搜索树)
一、搜索树的复杂度分析 本文考察二叉搜索树和索引二叉搜索树 二叉搜索树的渐进性能可以和跳表媲美: 查找、插入、删除操作所需的平均时间为Θ(logn) 查找、插入、删除操作的最坏情况的时间为Θ(n) 元素按升序输出时所需时间为Θ(n) 虽然在最坏情况下的查找、插入、删除操作,散列表和二叉搜索树的时间性能相同,但是散列表在最好的情况下具有超级性能Θ(1) 不过,对于一个指定的关键...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
立即提问