android 然后跳转activity 后返回保留原来的ListView数据

android 在第一个活动用Intent 跳转到第二个活动activity 后返回第一个活动,但是第一个活动中原来的ListView数据无法显示。
为什么无法返回跳转之前的第一个界面??

各位大神,求助!!

7个回答

activity的生命周期问题,压入堆栈的avtivity会释放当前的状态,需要重新渲染
你可以缓存数据,resume的时候重新加载
onSaveInstanceState 试试这个

startActivityForResult 跳转 onActivityResult 接收 用这样的方法跳转

我写了一个例子,你看一下就明白了

 package com.xzy.test01;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

    private Button mButton;
    private ListView mListView;
    private ArrayList mArrayList;

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

        initView();
        initData();
    }

    private void initView() {
        mButton = findViewById(R.id.mBtn);
        mListView = findViewById(R.id.mListView);

        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, TestActivity.class);
                MainActivity.this.startActivityForResult(intent, 0x11);
            }
        });
    }

    private void initData() {
        mArrayList = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            HashMap hashMap = new HashMap();
            hashMap.put("text", "position" + i);
            mArrayList.add(hashMap);
        }
        SimpleAdapter simpleAdapter = new SimpleAdapter(this, mArrayList, R.layout.list_item, new String[]{"text"}, new int[]{R.id.text});
        mListView.setAdapter(simpleAdapter);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 0x11) {
            Toast.makeText(this, "我回来了", Toast.LENGTH_SHORT).show();
        }
    }
}

跳转到的activity

 package com.xzy.test01;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class TestActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        findViewById(R.id.mBtn).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(TestActivity.this,MainActivity.class);
                TestActivity.this.setResult(0x11, intent);
                finish();
            }
        });
    }
}

记得MainActivity在跳转后不要finish掉

你的Activity1跳Activity2后,2返回1是调用Activity2的finish()而不是再startActivity启动Activity1。另外看下你Activity1中onStart,onRestart,onResume中有没有做什么操作。

在AndroidManifest.xml中给第一个activity加android:launchMode="singleTask"这个代码,标识栈内复用,而且1跳转到2的时候 不要finish()

跳转的时候用startActivityForResult 试试

你不贴代码我们也不知道具体是什么原因。。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android Activity跳转时更新Listview
想要实现的功能:每次从第二个Activity跳转回这个Activity的时候,更新这个Activity的listview。 出现的问题:在第二个Activity点击返回键的时候黑屏 关键代码如下: ``` @Override protected void onStart() { super.onStart(); for (int i = 0; i < listitem.size(); i++) { HashMap map = listitem.get(i); String num = "" + (i + 1); if (rfidNum != null && map.get(rfidNum) != null) { List list = reFreshDataMap.get(rfidNum); String QR_Code = (String) list.get(i); map.put("list_qrcode"+num, QR_Code); } listitem.add(map); } listItemAdapter.notifyDataSetChanged(); } ``` 求解答求讨论,谢谢!!!
Android中listview点击item跳转到新的界面,从新的界面返回到列表
我想用列表将搜索到的蓝牙设备用列表显示,点击列表中的蓝牙设备,跳转到新的界面,新的界面实现的是蓝牙连接功能,按手机上的返回之后,返回到列表界面,然后再点击该item,就会重新运行该item对应的activity,不想每点击一次,就得重新加载该activity,有什么好的办法吗?Android新手,求大神指导! ``` 列表的点击响应事件中的代码: Intent intent = new Intent(getActivity(),LeDeviceConnect.class); startActivity(intent); ```
android listView自动更新与实践处理问题
要做一个列表,显示人员信息的 每一个列表项就是一个添加的用户 单击每一个列表项就跳转到另一个activity用于查看该用户的信息 顶部还有一个添加的按钮跳转到添加的activity 现在问题是 我在添加activity中添加了一个用户,返回到列表时 如何能够自动更新列表中的数据 之前试过在列表activity中覆写onResume方法,在里面将adapter重新实例化,并且重新添加到listView中 不过问题是新添加的列表项无法跳转到信息显示的activity上,后台报错,空指向异常,其他的列表项却可以跳转。 也试过重新设置listView的OnItemClickListener,可是还是不行。 我想问一下有没有其他更好的方法在跳转回来后自动更新listView。 还有就是如何解决上面那个空指向的问题。 求高手指点一二
Android 两个activity之间跳转不刷新怎么实现
两个activity中布局类似,都有两个listview,listview可以点击,我现在设置的是两个一样的xml,两个类似的activity 用intent进行跳转,但这样切换会重新刷新,如何实现不刷新切换。请大神细讲 !!! 之前想用Fragment的方法 来隐藏添加控件 但是由于自己不太懂 一个类既要继承Fragment又要继承activity 不能解决 所以被搁置了 并且这个方法需要改动很多 太麻烦 我看到有些帖子有说能用按钮实现控件隐藏显示的 求教!
listview的条目点击事件
我想做点击listview的item会跳转到一个新的activity以便显示详细内容。 但是不同的item要给activity不同的返回值,以便activity加载相对应的数据。 我现在是在listview点击事件中,通过switch语句根据item不同位置返回不同的值来做,但是一个APP那么多信息,就如CSDN头条。我不可能写这么多case吧! 有做过,或者想法的还望分享,感激不尽。(学生没积分了,就当当雷锋吧,~~) 或者谈谈其他好的想法?比如做个CSDN头条是怎么通过点击item,然后转到详情页面的
Android页面fragment要怎么写,左边按钮,右边不同listview
Android页面最终实现的效果是左边一排按钮,右边一排listview。点击按钮右边跳转不同的listview 页面左边是8个按钮。 ![图片说明](https://img-ask.csdn.net/upload/201905/05/1557044675_37154.png) 页面右边根据点击不同按钮,跳转不同的listview。 这是其中一个listview![图片说明](https://img-ask.csdn.net/upload/201905/05/1557044699_946705.png) 新手不知道应该怎么写activity和多少个fragment。 是写一个activity布局用两个fragment(左边fragment管按钮,右边fragment管listview)。还是什么。新手很不清楚,请求大佬解答拜托。
Android——Activity和Fragment 的相关问题
错误内容 ``` java.lang.RuntimeException: Unable to start activity ComponentInfo{com.esen.aixiaobao/com.esen.aixiaobao.application.news.activity.NewsMainActivity}: android.view.InflateException: Binary XML file line #81: Error inflating class fragment at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2344) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396) at android.app.ActivityThread.access$600(ActivityThread.java:163) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1365) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5398) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #81: Error inflating class fragment at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at android.view.LayoutInflater.inflate(LayoutInflater.java:352) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:281) at android.app.Activity.setContentView(Activity.java:1889) at com.esen.aixiaobao.application.news.activity.NewsMainActivity.onCreate(NewsMainActivity.java:26) ``` Activity部分代码 ``` public class NewsMainActivity extends FragmentActivity { private Fragment[] fragments; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_fragment_news); FragmentNews fragment = new FragmentNews(); getSupportFragmentManager().beginTransaction().replace(R.id.fragment_news, fragment).commit(); fragments = new Fragment[2]; fragments[0] = getSupportFragmentManager().findFragmentById(R.id.fragment_news); fragments[1] = getSupportFragmentManager().findFragmentById(R.id.fragment_focus); getSupportFragmentManager().beginTransaction(). hide(fragments[1]).show(fragments[0]).commit(); } ``` Fragment 相关代码 ``` public class FragmentNews extends Fragment{ private FragmentActivity activity; private MyListView listView; private NewsListViewAdapter adapter; private List<News> newses; //当前页数 private int pageNow = 0; //判断是否加载更多 private boolean isLoading =false; public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){ View view = inflater.inflate(R.layout.fragment_news,container,false); return view; } ``` 代码目的,我是想从一个activity(one)跳转到另一个activity(two)上,但是我的 activity(two)是继承FragmentActivity的。 Fragment才是主要显示页面。 ``` public void onClick(View view) { switch (view.getId()) { case R.id.home_family_textview_icon_notify: Intent intent = new Intent(getActivity(), NewsMainActivity.class); startActivity(intent); break; ```
设置configChanges后跳转再回来的问题
今天做视频的横竖屏切换,我添加了configChanges="orientation|keyboardHidden|screenSize",保证activity不重新创建。 但是在这个activity里我还有个listview,在点击listview后,跳转到其他页面,再返回到该activity时,listview不显示了,因为listview是在oncreat方法里创建的,返回时,不再调用oncreat方法。 应该怎么解决这个问题啊?
求教Fragment和ListView点击跳转
``` package gfxy.com.fragment_dahb; import android.app.Fragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Web extends Fragment { WebView we; EditText ed1; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.web,null); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getActivity().setContentView(R.layout.web); Button bu = (Button) getActivity().findViewById(R.id.webbut); ed1 = (EditText) getActivity().findViewById(R.id.webed); we = (WebView) getActivity().findViewById(R.id.webweb); WebSettings wes = we.getSettings(); wes.setJavaScriptEnabled(true); bu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setweb(); } }); we.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress == 100) { Toast.makeText(getActivity(), "网页加载完成", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getActivity(), "加载中", Toast.LENGTH_SHORT).show(); } } }); } public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && we.canGoBack()){ we.goBack(); return true; } return false; } public void setweb() { we.loadUrl("http://" + ed1.getText().toString().trim()); we.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); } } ``` ``` package gfxy.com.fragment_dahb; import android.app.Fragment; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.widget.DrawerLayout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.RadioGroup; import org.achartengine.ChartFactory; import org.achartengine.GraphicalView; import org.achartengine.model.CategorySeries; import org.achartengine.renderer.DefaultRenderer; import org.achartengine.renderer.SimpleSeriesRenderer; /** * Created by Administrator on 2016/4/18. */ public class bt extends Fragment { public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); FrameLayout sa = (FrameLayout) getActivity().findViewById(R.id.fm); sa.removeAllViews(); CategorySeries dataset=buildCategoryDataset("测试饼图"); GraphicalView graphicalView=ChartFactory.getPieChartView(getActivity(),dataset, renderer);//饼状图 sa.addView(graphicalView, new RadioGroup.LayoutParams(RadioGroup.LayoutParams.FILL_PARENT, RadioGroup.LayoutParams.FILL_PARENT)); } protected CategorySeries buildCategoryDataset(String title) { CategorySeries categorySeries = new CategorySeries(title); categorySeries.add("胜 ", 30); categorySeries.add("负", 20); categorySeries.add("平", 50); return categorySeries; } int[] colors={Color.BLUE,Color.GREEN,Color.MAGENTA,Color.RED}; DefaultRenderer renderer=buildCategoryRenderer(colors); protected DefaultRenderer buildCategoryRenderer(int[] colors) { DefaultRenderer renderer = new DefaultRenderer(); renderer.setLegendTextSize(20);//设置左下角表注的文字大小 //renderer.setZoomButtonsVisible(true);//设置显示放大缩小按钮 renderer.setZoomEnabled(false);//设置不允许放大缩小. renderer.setChartTitleTextSize(30);//设置图表标题的文字大小 renderer.setChartTitle("统计结果");//设置图表的标题 默认是居中顶部显示 renderer.setLabelsTextSize(20);//饼图上标记文字的字体大小 //renderer.setLabelsColor(Color.WHITE);//饼图上标记文字的颜色 renderer.setPanEnabled(false);//设置是否可以平移 //renderer.setDisplayValues(true);//是否显示值 renderer.setClickEnabled(true);//设置是否可以被点击 renderer.setMargins(new int[]{20, 30, 15, 0}); //margins - an array containing the margin size values, in this order: top, left, bottom, right for (int color : colors) { SimpleSeriesRenderer r = new SimpleSeriesRenderer(); r.setColor(color); renderer.addSeriesRenderer(r); } return renderer; } } ``` ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="30dp" android:orientation="horizontal"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="sadsd" android:textSize="25dp" android:gravity="center" android:background="#0f4"/> </LinearLayout> <android.support.v4.widget.DrawerLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/lv" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="@null" android:choiceMode="singleChoice"> </ListView> <FrameLayout android:id="@+id/fm" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </android.support.v4.widget.DrawerLayout> </LinearLayout> ``` 我想把Web。和bt显示在framelayout里面,求教怎么做? 还有ListView的点击跳转事件之前用还没问题,也不知道干了什么,然后就不能进行跳转了 求解决?? ``` package gfxy.com.fragment_dahb; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.Intent; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.view.View; import android.widget.AdapterView; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.SimpleAdapter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MainActivity extends Activity { private String[] name = new String[]{ "饼图","静态折线","动态折线","Web","逐帧动画","缩放,透明,旋转,平移" }; private FragmentManager fm; private FragmentTransaction ft; private FrameLayout fml; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fml = (FrameLayout) findViewById(R.id.fm); ListView lv = (ListView)findViewById(R.id.lv); List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); for (int i=0;i<name.length;i++){ Map<String,Object> map = new HashMap<String,Object>(); map.put("name",name[i]); list.add(map); } lv.setAdapter(new SimpleAdapter(this,list,R.layout.content_main,new String[]{"name"},new int[]{R.id.text1})); // int wi = getWindowManager().getDefaultDisplay().getWidth();//获取手机宽度 // int hi = getWindowManager().getDefaultDisplay().getHeight();//获取手机高度 fm = getFragmentManager();//创建一个Fragment ft = fm.beginTransaction();//对Fragment进行添加,删除,替换 ft.replace(R.id.fm,new Fragment1()); ft.commit(); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if(position==0){ ft = fm.beginTransaction(); ft.replace(R.id.fm,new bt()); ft.commit(); } if(position==1){ ft = fm.beginTransaction(); ft.replace(R.id.fm,new Fragment1()); ft.commit(); } if(position==3){ ft = fm.beginTransaction(); ft.replace(R.id.fm,new Web()); ft.commit(); } } }); } } ```
怎么实现类似于新浪点击@字体跳转,点击别的字体触发listview的onItemCliclk
怎么实现类似新浪微博里面的点击@或者##实现跳转,但是点击其他文字触发listview的onitemclick,我现在能实现的点击@,##跳转,点击listview的Item的空白处可以触发onItemClick,但是点击TextView上别的文字不行,代码如下: public class MainActivity extends Activity implements OnItemClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Context context=this; setContentView(R.layout.activity_main); ListView listview=(ListView)findViewById(R.id.list); ArrayList<String> list=new ArrayList<String>(); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑地方活动经费看京东方看见您发到您看见烦恼的烦恼看能否看闹洞房放得开能发到您方面的能发,没地方防盗门南方的买奶粉,的买奶粉,买电脑,吗发到您防盗门内分泌,单方面, 发的摩奴法典麻烦您的,魔女发冠,们东南方防盗门南方的买奶粉满脑袋发的,摩奴法典们内分泌"); list.add("@王五 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@马六 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@李二 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@大一 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); list.add("@张三 李四#来嘛#的是滴是滴@我靠 山东省电脑"); MyAdapter adapter=new MyAdapter(context,list); listview.setAdapter(adapter); listview.setOnItemClickListener(this); } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Log.i("madui","点击了item"); } } public class MyAdapter extends BaseAdapter{ private Context context; List<String> list; public MyAdapter(Context context,ArrayList<String>list){ this.context=context; this.list=list; } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub convertView=LayoutInflater.from(context).inflate(R.layout.item, null); TextView text=(TextView)convertView.findViewById(R.id.text); text.setText(TextUtil.formatContent(list.get(position),context)); text.setMovementMethod(TextViewFixTouchConsume.LocalLinkMovementMethod.getInstance()); ((ViewGroup)convertView).setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); return convertView; } } public class TextUtil { public static SpannableString formatContent(CharSequence text,Context context) { SpannableString spannableString = new SpannableString(text); final Context cont=context; String s=text.toString(); /* * @[^\\s::]+[::\\s] 匹配@某人 \\[[^0-9]{1,4}\\] 匹配表情 */ Pattern pattern = Pattern.compile("@[^\\s::]+[::\\s]|\\[[^0-9]{1,4}\\|@[^\\s: ]+[: \\s]|#{1}[^\\s:#]+#{1}|#{1}[\u4e00-\u9fa5_a-zA-Z0-9]+#{1}"); Matcher matcher = pattern.matcher(spannableString); // spannableString.setSpan(new ForegroundColorSpan(Color.RED), // matcher.start(), matcher.end(), // Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); Log.i("spannableString",text.length()+""); // while (matcher.find()) { final String match=matcher.group(); if(match.startsWith("@")){ //@某人,加亮字体 final String nickName=text.toString().substring(matcher.start(), matcher.end()); spannableString.setSpan(new ClickableSpan(){ @Override public void onClick(View widget) { // TODO Auto-generated method stub Log.i("at","点击了@"); } @Override public void updateDrawState(TextPaint ds) { // TODO Auto-generated method stub super.updateDrawState(ds); ds.setUnderlineText(false); ds.setARGB(255, 255, 0, 0); } },matcher.start(), matcher.end(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); }else if(match.startsWith("[")){ //表情 String key = match.substring(1, match.length() - 1); // if (Face.getfaces(context).containsKey(key)) { // spannableString.setSpan(new ImageSpan(context, Face.getfaces( // context).get(key)), matcher.start(), matcher.end(), // Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); // } } else if(match.startsWith("http://")){ spannableString.setSpan(new ForegroundColorSpan(0xff0077ff), matcher.start(), matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } else if(match.startsWith("#")){ final String keyWords=text.toString().substring(matcher.start()+1, matcher.end()); spannableString.setSpan(new ForegroundColorSpan(Color.RED), matcher.start(), matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(new ClickableSpan(){ @Override public void onClick(View widget) { // TODO Auto-generated method stub Log.i("at1","点击了##"); } @Override public void updateDrawState(TextPaint ds) { // TODO Auto-generated method stub super.updateDrawState(ds); ds.setUnderlineText(false); ds.setARGB(255, 255, 0, 0); } },matcher.start(), matcher.end(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } } return spannableString; } } 布局文件 activity_main <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </RelativeLayout> item <?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" android:padding="20dp" > <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="张三@李四 你好吗#山东黄金#山东黄金定时开机@朱芳雨" /> </LinearLayout> 参照网上唯一的一种方法也不行,解决办法如下,但是不起作用 http://my.oschina.net/djone/blog/145057,请各位大仙帮帮忙
我的Activity跳转失败
设置Intent 和manifest无误 ,但 点击后就会 《已停止》 Main.java文件 package com.news_1; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; public class Main extends Activity { private ListView listView = null; static String str[], strs; String ttt; Map<String, Object> map; List<Map<String, Object>> data; // List<Map<String, Object>> list; Intent i1; int x, i; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ProgressDialog myDialog = ProgressDialog.show(Main.this, "正在连接", "please wait...", true, true); Handler handler2 = new Handler(); new Thread() { public void run() { while (ttt == null) { try { sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } myDialog.dismiss(); } }.start(); Runnable mTasks = new Runnable() { public void run() { Intent intent = new Intent(); intent.setClass(Main.this, Activity.class); startActivity(intent); } }; data = new ArrayList<Map<String, Object>>(); new Thread() { @Override public void run() { // String myJsonUrl = // "http://wolfsayapi.sinaapp.com/news/api.php?act=index&type=1&page=1&size=10"; String myJsonUrl = "http://wolfsayapi.sinaapp.com/news/api.php?act=index&page=1&size=40"; HttpGet httpRequest = new HttpGet(myJsonUrl); String strResult = ""; try { HttpClient httpClient = new DefaultHttpClient(); HttpResponse httpResponse = httpClient.execute(httpRequest); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { strResult = EntityUtils.toString(httpResponse .getEntity()); } } catch (ClientProtocolException e) { Log.i("DDD", "protocol error"); e.printStackTrace(); } catch (IOException e) { Log.i("DDD", "IO error"); e.printStackTrace(); } try { JSONArray jsonObjs = new JSONObject(strResult) .getJSONArray("data"); for (int i = 0; i < jsonObjs.length(); i++) { JSONObject jsonObj = (JSONObject) jsonObjs.opt(i); ttt = jsonObj.getString("title"); Log.i("DDD", "return: " + ttt); map = new HashMap<String, Object>(); map.put("id", jsonObj.getString("id")); map.put("img", jsonObj.getString("image")); map.put("title", jsonObj.getString("title")); map.put("time", jsonObj.getString("time")); data.add(map); } // setData(data); Message msg = new Message(); msg.what = 200; handler.sendMessage(msg); } catch (JSONException e) { e.printStackTrace(); } } }.start(); } @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) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } private Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { if (msg.what == 200) { setData(); } }; }; public void setData() { listView = (ListView) findViewById(R.id.list); listView.setAdapter(new Myadapter(this, data)); listView.setOnItemClickListener(bln); } // public List<Map<String, Object>> getData() { // data = new ArrayList<Map<String, Object>>(); // for (i = 1; i <= 16; i++) { // map = new HashMap<String, Object>(); // map.put("img", R.drawable.wolfsay); // map.put("title", ttt); // map.put("time", "time"); // data.add(map); // } // return data; // } private ListView.OnItemClickListener bln = new ListView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // Log.i("data->",""+data.get(arg2).get("title")); x = (Integer) map.get(arg1); i1 = new Intent(Main.this, NewsPage.class); Bundle bundle = new Bundle(); bundle.putString("title", (String) data.get(arg2).get("title")); bundle.putInt("id", x); i1.putExtras(bundle); startActivity(i1); return; } }; } NewsPage.java文件 package com.news_1; import java.io.IOException; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.json.JSONException; import org.json.JSONObject; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.widget.TextView; public class NewsPage extends Activity { TextView t1,t2; String url="http://wolfsayapi.sinaapp.com/news/api.php?act=content&id="; String result,text; HttpResponse httpResponse2=null; Bundle bundle = this.getIntent().getExtras(); String title = bundle.getString("title"); int id=bundle.getInt("id"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.newspage); new Thread() { public void run() { HttpGet httpRequest2 = new HttpGet(url+id); String strResult2 = ""; try { HttpClient httpClient2 = new DefaultHttpClient(); HttpResponse httpResponse2 = httpClient2.execute(httpRequest2); if (httpResponse2.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { strResult2 = EntityUtils.toString(httpResponse2 .getEntity()); } } catch (ClientProtocolException e) { Log.i("AAA", "protocol error"); e.printStackTrace(); } catch (IOException e) { Log.i("AAA", "IO error"); e.printStackTrace(); } try { text=new JSONObject(strResult2).getString("content"); Log.i("AAA", "return: " + text); // setData(data); Message msg2 = new Message(); msg2.what=200; handler3.sendMessage(msg2); } catch (JSONException e) { e.printStackTrace(); } } }.start(); } @SuppressLint("HandlerLeak") private Handler handler3 =new Handler(){ public void handleMessage(android.os.Message msg2) { if(msg2.what==200) { setLayout(); } }; }; public void setLayout() { t1=(TextView)this.findViewById(R.id.title); t1.setText(title); t2=(TextView)this.findViewById(R.id.content); t2.setText(text); } } Manifest.xml文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.news_1" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" > <activity android:name="com.news_1.Main" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.news_1.NewsPage" android:label="@string/app_name" > </activity> </application> <uses-permission android:name="android.permission.INTERNET" /> </manifest> 我不知道是什么错误,只要点击 进行跳转 就会 停止,Intent Manifest文件 网络权限都没问题 这个问题折磨了我很久 望大师指教
Android 下载视频到本地 listview界面更新问题
在Activity-A中启动下载,然后跳转到activity-B中查看下载列表更新情况,我下载的时候使用sqlite保存下载详情 然后更新列表的时候会报错,或者所有item现实一样进度,请大神指教
安卓listview item单击事件跳转空指针问题
两个activity源码, mainactivity: package com.example.newsclient; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.example.gxfi.entity.News; import com.example.gxfi.service.GetXmlAndParse; import android.R.string; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SimpleAdapter; public class MainActivity extends Activity { private List listNews; private ListView list; Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub switch (msg.what) { case GetXmlAndParse.PARSESUCCWSS: listNews = (List) msg.obj; initData(); break; } super.handleMessage(msg); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); list = (ListView) findViewById(R.id.list); GetXmlAndParse getXmlAndParse = new GetXmlAndParse(mHandler); getXmlAndParse.getXml(); list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub switch (parent.getId()) { case R.id.list: expressItemClick(position);//position 代表你点的哪一个 break; } } private void expressItemClick(int position) { // TODO Auto-generated method stub Intent intent = new Intent(MainActivity.this,NewsActivity.class); Map<String, String> item = (Map<String, String>) list.getAdapter().getItem(position); String essay = item.get("description"); //添加到intent域中 intent.putExtra("description",essay ); startActivity(intent); finish(); }}); } /** * 将解析后的xml填充到ListView */ protected void initData() { // TODO Auto-generated method stub List items = new ArrayList(); for (News news : (List<News>)listNews) { Map item = new HashMap(); item.put("title", news.getTitle()); item.put("description", news.getDescription()); items.add(item); } SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.news_view, new String[] { "title" }, new int[] { R.id.textView1 }); list.setAdapter(adapter); } } newsactivity: package com.example.newsclient; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.TextView; public class NewsActivity extends Activity { private TextView myTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = getIntent(); String value = intent.getStringExtra("description"); myTextView = (TextView) findViewById(R.id.textview2); // myTextView.setText(value); } } 错误: ![图片说明](https://img-ask.csdn.net/upload/201606/19/1466349934_182376.png)
安卓问题,代码如下:想显示一个listView。但是跳转到合格activity什么都不显示。
package com.coolweather.app.activity; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.coolweather.app.R; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebIconDatabase.IconListener; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; public class Future extends Activity{ private ListView lvFur; private static List<Furweather> list= new ArrayList<Furweather>(); private TextView tvTest; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.furture); lvFur = (ListView) findViewById(R.id.listView1); WeatherActivity wa = new WeatherActivity(); handleWeatherResponse(wa.result); lvFur.setAdapter(adapter); } public BaseAdapter adapter = new BaseAdapter() { @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub LayoutInflater inflater = LayoutInflater.from(Future.this); if(convertView==null){ convertView = inflater.inflate(R.layout.item, null); TextView tv_data = (TextView) convertView.findViewById(R.id.textView_data); TextView tv_wendu = (TextView) convertView.findViewById(R.id.textView_wendu); ImageView iv_head = (ImageView)convertView.findViewById(R.id.imageView_head); tv_data.setText(list.get(position).getCityname()+list.get(position).getDate()); tv_wendu.setText(list.get(position).getWeather()+list.get(position).getTmper()); ViewHolder vh= new ViewHolder(tv_data,tv_wendu); convertView.setTag(vh); }else{ ViewHolder vh = (ViewHolder) convertView.getTag(); vh.tv_data.setText(list.get(position).getCityname()+list.get(position).getDate()); vh.tv_wendu.setText(list.get(position).getWeather()+list.get(position).getTmper()); } return convertView; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } }; public class ViewHolder{ private TextView tv_data; private TextView tv_wendu; //private ImageView iv_head; public TextView getTv_data() { return tv_data; } public void setTv_data(TextView tv_data) { this.tv_data = tv_data; } public TextView getTv_wendu() { return tv_wendu; } public void setTv_wendu(TextView tv_wendu) { this.tv_wendu = tv_wendu; } // public ImageView getIv_head() { // return iv_head; // } // public void setIv_head(ImageView iv_head) { // this.iv_head = iv_head; // } public ViewHolder(TextView tv_data, TextView tv_wendu) { super(); this.tv_data = tv_data; this.tv_wendu = tv_wendu; //this.iv_head = iv_head; } } //解析joson数据 public static void handleWeatherResponse(String response) { try { JSONArray root = new JSONArray(response); for(int i = 0;i < root.length();i++){ JSONObject item = root.getJSONObject(i); String date = item.getString("days"); String week = item.getString("week"); String weather = item.getString("weather"); String cityname = item.getString("citynm"); String tmp = item.getString("temperature"); list.add(new Furweather(date+week,weather,cityname, tmp)); } }catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class Furweather{ private String date; private String weather; private String cityname; private String tmper; public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getWeather() { return weather; } public void setWeather(String weather) { this.weather = weather; } public String getCityname() { return cityname; } public void setCityname(String cityname) { this.cityname = cityname; } public String getTmper() { return tmper; } public void setTmper(String tmper) { this.tmper = tmper; } public Furweather(String date, String weather, String cityname, String tmper) { super(); this.date = date; this.weather = weather; this.cityname = cityname; this.tmper = tmper; } } 其中result是从另一个activity中传过来的joson数据。现在打开这个activity没有显示。求大神指出是哪里的问题。。
RecyclerView中点击item跳转到其他Activity并显示item内容如何实现?
适配器代码 ``` package com.example.uilayout.adapter; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.example.uilayout.R; import com.example.uilayout.model.Msg; import java.util.List; /** * Created by 夏雨来 on 2018/11/20. */ public class MsgListAdapter extends RecyclerView.Adapter<MsgListAdapter.viewHolder> { private List<Msg> msgList; //1、创建构造函数 //构造函数参数是list的集合,他是rv直接的数据来源 //在做Adapter实例化的时候必须传入list的集合数据 public MsgListAdapter(List<Msg> msgList) { this.msgList = msgList; } //2、创建类ViewHolder(视图容器),承载的是条目中的控件 //做条目中控件的声明和绑定 class viewHolder extends RecyclerView.ViewHolder{ ImageView iv_head; TextView tv_friend; TextView tv_message; TextView tv_time; View itemView; public viewHolder(View itemView) { super(itemView); //itemView的值由一步一步传递过来的 this.itemView=itemView; iv_head=itemView.findViewById(R.id.iv_head); tv_friend=itemView.findViewById(R.id.tv_friend); tv_message=itemView.findViewById(R.id.tv_message); tv_time=itemView.findViewById(R.id.tv_time); } } //创建ViewHolder对象 // @Override public viewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View itemView = View.inflate(viewGroup.getContext(),R.layout.item_msglist,null); viewHolder holder=new viewHolder(itemView); return holder; } //给ViewHolder中的控件设置数据 @Override public void onBindViewHolder(final viewHolder viewHolder, final int i) { final Msg msg = msgList.get(i); viewHolder.iv_head.setImageResource(msg.getImage_head()); viewHolder.tv_friend.setText(msg.getFriend()); viewHolder.tv_message.setText(msg.getMessage()); viewHolder.tv_time.setText(msg.getTime()); //设置条目中的点击监听 viewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(view.getContext(), "你想与" + msg.getFriend() + "聊天", Toast.LENGTH_SHORT).show(); // TextView friendView=view.findViewById(R.id.tv_friend); // Intent intent=new Intent(); // Intent intent=new Intent(mContext,ChatActivity.class); // intent.putExtra("friend",msg.getFriend().toString()); // mContext.startActivity(intent); } }); //设置条目中具体控件的点击监听 // viewHolder.iv_head.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View view) { // Toast.makeText(view.getContext(), "你点击了"+msg.getFriend()+"头像", Toast.LENGTH_SHORT).show(); // } // }); } @Override public int getItemCount() { return msgList.size(); } } ``` Activity代码 ``` package com.example.uilayout.activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import com.example.uilayout.model.Msg; import com.example.uilayout.adapter.MsgListAdapter; import com.example.uilayout.R; import com.example.uilayout.utils.MySQLiteOpenHelper; import java.util.ArrayList; import java.util.List; public class MsgListActivity extends AppCompatActivity { RecyclerView rv; List<Msg> msgList = new ArrayList<>(); // TextView friend; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_msglist); rv = findViewById(R.id.rv); // friend =findViewById(R.id.tv_friend); //给rv设置线性布局 rv.setLayoutManager(new LinearLayoutManager(this)); //初始化List集合数据 // initList(msgList); initListFromDB(); //给rv设置适配器 rv.setAdapter(new MsgListAdapter(msgList)); // MySQLiteOpenHelper helper=new MySQLiteOpenHelper(this,"wechat",null,1); // SQLiteDatabase db=helper.getWritableDatabase(); } public void initListFromDB() { MySQLiteOpenHelper helper = new MySQLiteOpenHelper(this, "wechat", null, 1); SQLiteDatabase db = helper.getWritableDatabase(); Cursor cursor = db.query("msg", null, null, null, null, null, null); while (cursor.moveToNext()) { int headImageSrc = cursor.getInt(cursor.getColumnIndex("headImageSrc")); String friend = cursor.getString(cursor.getColumnIndex("friend")); String message = cursor.getString(cursor.getColumnIndex("message")); String time = cursor.getString(cursor.getColumnIndex("time")); Msg msg = new Msg(headImageSrc, friend, message, time); msgList.add(msg); } } } ``` 布局文件 ``` <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:descendantFocusability="blocksDescendants" > <ImageView android:id="@+id/iv_head" android:layout_width="60dp" android:layout_height="60dp" android:src="@drawable/a" android:layout_marginTop="5dp" android:layout_marginLeft="10dp" android:onClick="click" /> <TextView android:id="@+id/tv_friend" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="小张" android:textSize="20sp" android:textColor="#000" android:layout_toRightOf="@+id/iv_head" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:onClick="click" /> <TextView android:id="@+id/tv_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你在干嘛" android:textSize="15sp" android:lines="1" android:layout_alignLeft="@+id/tv_friend" android:layout_marginTop="40dp" android:onClick="click" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="21:00" android:textSize="15sp" android:layout_alignTop="@+id/tv_friend" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:onClick="click" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#C0C0C0" android:layout_alignLeft="@+id/iv_head" android:layout_alignRight="@+id/tv_time" android:layout_marginTop="74dp" /> </RelativeLayout> ``` 未跳转时界面 ![未跳转时界面](https://img-ask.csdn.net/upload/201812/23/1545574749_907427.png) 效果,点击item跳转到另一个界面之后,界面显示与XX聊天,XX是由item中获取的 ![效果,点击item跳转到另一个界面之后,界面显示与XX聊天,XX是由item中获取的](https://img-ask.csdn.net/upload/201812/23/1545574974_525413.png)
Android 的service监听调用
在一个页面写好ListView之后,点击每一个音乐都能正常播放和停止,当我写了SharedPreferences.Editor存储xml,也能正常读取,并添加了扫描音乐按钮跳转到新的activity,也是成功完成,再销毁之前的ListView界面并重新跳转到同样的新的ListView界面,歌曲列表也读出来了的,然后再点击播放,成功进入service,但是这个时候却无法启动MediaPlayer.start()了,错误日志说是调用虚拟方法,空对象引用。
求大神解答从Fragment中的按钮跳转至另一个页面的问题
小弟学习安卓的时候遇到了问题,如下。 我显示编辑了一个Fragment的类,代码如下: import android.app.Activity; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.ListView; public class FragmentRecord extends Fragment implements View.OnClickListener{ private ListView listView; private String[] mStrings = {"运动1", "运动2", "运动3"}; private ArrayAdapter<String>array_adapter; private ImageView btn_add; @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView =inflater.inflate(R.layout.fragment_record, container, false); listView = (ListView)rootView.findViewById(R.id.listView_data);//获取自己视图里的控件引用 btn_add=(ImageView) rootView.findViewById(R.id.btn_add); //return inflater.inflate(R.layout.fragment_record,container,false); return rootView; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); array_adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mStrings); listView.setAdapter(array_adapter); btn_add=(ImageView) getActivity().findViewById(R.id.btn_add); btn_add.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent =new Intent(getActivity(),FragmentTarget.class); FragmentRecord.this.startActivity(intent); } } 我设置了按钮的点击事件,可是为什么一点按钮就报错,错误如下:、 ![图片说明](https://img-ask.csdn.net/upload/201604/16/1460792008_617819.jpg) 然后我想要跳转的页面是这样的一个: import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class FragmentTarget extends Fragment { @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_target, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); } } 不太清楚如何改可以改了这个FragmentTartget强制转换成activity的错误,求大神解答,十分感谢!
android应用开发详解里的一个例子
我导入的书上例子可以运行,照着书打进去的代码就不能运行,同样从例子里面复制过来的代码也不能运行,MainActivity可以显示,但是点击register后跳转的ResultActivity就不能显示,模拟器弹出has stopped字样,求解答 以下是代码 package com.amaker.test; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.RadioButton; import android.widget.Spinner; import android.widget.ToggleButton; public class MainActivity extends Activity { private Button register,cancel; private ToggleButton marriged; private RadioButton male,female; private EditText username,password; private Spinner position; private CheckBox reading,swimming; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); username = (EditText)findViewById(R.id.username); password = (EditText)findViewById(R.id.password); male = (RadioButton)findViewById(R.id.male); female = (RadioButton)findViewById(R.id.female); reading = (CheckBox)findViewById(R.id.reading); swimming = (CheckBox)findViewById(R.id.swimming); marriged = (ToggleButton)findViewById(R.id.marriged); position = (Spinner)findViewById(R.id.position); String[] str = {"CEO","CFO","PM"}; ArrayAdapter aa = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item,str); position.setAdapter(aa); register = (Button)findViewById(R.id.register); cancel = (Button)findViewById(R.id.cancel); register.setOnClickListener(new OnClickListener() { public void onClick(View v) { Bundle b = new Bundle(); b.putString("username", "用户名称:"+username.getText().toString()); b.putString("password", "用户密码:"+password.getText().toString()); if(male.isChecked()){ b.putString("gender", "性别:男"); }else{ b.putString("gender", "性别:女"); } String temp = "爱好:"; if(reading.isChecked()){ temp+="阅读"; } if(swimming.isChecked()){ temp+=" "; temp+="游泳"; } b.putString("hobby", temp); if(marriged.isChecked()){ b.putString("marriged", "婚否:已婚"); }else{ b.putString("marriged", "婚否:未婚"); } b.putString("position","职位:"+ position.getSelectedItem().toString()); Intent intent = new Intent(MainActivity.this,ResultActivity.class); intent.putExtra("data", b); startActivity(intent); } }); } } import android.widget.ArrayAdapter; import android.widget.ListView; public class ResultActivity extends Activity{ private ListView listView; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.result); listView = (ListView) findViewById(R.id.ListView01); Intent intent = this.getIntent(); Bundle b = intent.getBundleExtra("data"); System.out.println(b.getString("username")); List list = new ArrayList(); list.add(b.getString("username")); list.add(b.getString("password")); list.add(b.getString("position")); list.add(b.getString("gender")); list.add(b.getString("hobby")); list.add(b.getString("marriged")); ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,list); listView.setAdapter(adapter); } } 布局的xml main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TableLayout android:id="@+id/TableLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:stretchColumns="1" > <TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:text="用户名称" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <EditText android:text="" android:id="@+id/username" android:layout_width="wrap_content" android:layout_height="wrap_content" ></EditText> </TableRow> <TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:text="用户密码" android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <EditText android:text="" android:id="@+id/password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:password="true" ></EditText> </TableRow> <TableRow android:id="@+id/TableRow03" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:text="性别" android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <RadioGroup android:id="@+id/gender_g" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:text="男" android:id="@+id/male" android:layout_width="wrap_content" android:layout_height="wrap_content"></RadioButton> <RadioButton android:text="女" android:id="@+id/female" android:layout_width="wrap_content" android:layout_height="wrap_content"></RadioButton> </RadioGroup> </TableRow> <TableRow android:id="@+id/TableRow04" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:text="婚否" android:id="@+id/TextView04" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <ToggleButton android:text="@+id/ToggleButton01" android:id="@+id/marriged" android:layout_width="wrap_content" android:layout_height="wrap_content"></ToggleButton> </TableRow> <TableRow android:id="@+id/TableRow05" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:text="爱好" android:id="@+id/hobby" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <CheckBox android:text="阅读" android:id="@+id/reading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1" ></CheckBox> <CheckBox android:text="游泳" android:id="@+id/swimming" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_column="1" ></CheckBox> </TableRow> <TableRow android:id="@+id/TableRow06" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:text="职务" android:id="@+id/TextView05" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <Spinner android:id="@+id/position" android:layout_width="wrap_content" android:layout_height="wrap_content"></Spinner> </TableRow> <TableRow android:id="@+id/TableRow07" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:text="取消" android:id="@+id/cancel" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="注册" android:id="@+id/register" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </TableRow> </TableLayout> </LinearLayout> result.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/ListView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></ListView> </LinearLayout>
点击listview中的item跳转并获取item中的内容出现的问题
![![图片说明](https://img-ask.csdn.net/upload/201603/15/1458044910_116397.png)图片说明](https://img-ask.csdn.net/upload/201603/15/1458044899_583784.png)一用settext()里面写上title就出错了 打印出来的title desc确实传递到另一个activity了
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载 点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
立即提问