onactivityresult方法里面的数为什么其他方法用不了

hellofenny 2014-05-26 06:17:14
package lee.demo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.os.Build;


public class MainActivity extends Activity {
public static String name;
Button button01;
ListView listview;
TextView textview;


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

listview = (ListView)findViewById(R.id.mylistview);
textview = (TextView)findViewById(R.id.textview);
button01=(Button)findViewById(R.id.button01);
button01.setOnClickListener(new Button01Listener());


}

class Button01Listener implements OnClickListener{

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this,otherActivity.class);
startActivityForResult(intent, 100);
}

}

public void onActivityResult(int requestCode,int resultCode,Intent data)
{
switch (resultCode) {
case 20:

name = data.getStringExtra("name");




}
}
void Getname()
{
textview.setText(name.toString());
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
Map<String,Object> map = new HashMap<String,Object>() ;
map.put("name",name);
list.add(map);

SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.listview, new String[]{"name"}, new int[]{R.id.tv1});
listview.setAdapter(adapter);
adapter.notifyDataSetChanged();

}


}
请大家帮忙看看
...全文
242 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
triplesky001 2014-05-27
  • 打赏
  • 举报
回复
首先List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();定义成全局的,创建个公共类里面也有个List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();跳转的时候把数据给公共的list,onactivityresult中this.list=public.list,然后添加传过来的,然后刷新。
hellofenny 2014-05-27
  • 打赏
  • 举报
回复
引用 10 楼 lulong1985 的回复:
这个就没办法了,因为你要刷新listview就得adapter.notifyDataSetChanged();这样只能重新获取数据,你要不想重构我能想到的就是定义成全局的,跳转的时候保存下来,onactivityresult中把传的值添加进去,但这两个的效率就不知道哪个高了
能告诉下,怎么定义成全局的么
triplesky001 2014-05-27
  • 打赏
  • 举报
回复
这个就没办法了,因为你要刷新listview就得adapter.notifyDataSetChanged();这样只能重新获取数据,你要不想重构我能想到的就是定义成全局的,跳转的时候保存下来,onactivityresult中把传的值添加进去,但这两个的效率就不知道哪个高了
hellofenny 2014-05-27
  • 打赏
  • 举报
回复
引用 7 楼 lulong1985 的回复:
我没看到你在onactivityresult中执行void Getname()这个方法啊
所以我就想了个办法,就是onactivityresult里面只进行取值,然后让其他方法使用
hellofenny 2014-05-27
  • 打赏
  • 举报
回复
引用 7 楼 lulong1985 的回复:
我没看到你在onactivityresult中执行void Getname()这个方法啊
恩,这个我知道,我之所以没这么做的原因,是在如果onactivityresult里面执行了这个方法,那么每次都会重新构建一个list。我想要的效果是每次从其他页面传过数来,新添加一个list里面的item
triplesky001 2014-05-27
  • 打赏
  • 举报
回复
我没看到你在onactivityresult中执行void Getname()这个方法啊
hellofenny 2014-05-27
  • 打赏
  • 举报
回复
引用 2 楼 hellofenny 的回复:
[quote=引用 1 楼 lulong1985 的回复:] 没看懂搂住想做什么
就是在onActivityResult这个方法中,取到其他页面传过来的值,然后在本页面,添加到listview中去。这个是我想实现的功能,现在的问题是,我在onActivityResult这个方法取到的值,下面的方法Getname用不了。刚刚接触所以不太懂[/quote] 我将代码textview.setText(name.toString()); List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); Map<String,Object> map = new HashMap<String,Object>() ; map.put("name",name); list.add(map); SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.listview, new String[]{"name"}, new int[]{R.id.tv1}); listview.setAdapter(adapter); adapter.notifyDataSetChanged(); 放到onactivityresult方法中,就能显示出来,在getname()方法中却显示不出来
hellofenny 2014-05-27
  • 打赏
  • 举报
回复
引用 3 楼 jack_wolf_ 的回复:
otherActivity 中setResult(resultCode);并finish()了么
设定了,也finish了
hellofenny 2014-05-27
  • 打赏
  • 举报
回复
引用 3 楼 jack_wolf_ 的回复:
otherActivity 中setResult(resultCode);并finish()了么
package lee.demo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class otherActivity extends Activity{ Button button02; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.other); button02 = (Button)findViewById(R.id.button02); button02.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(otherActivity.this,MainActivity.class); intent.putExtra("name", "hello"); setResult(20,intent); finish(); } }); } }
映映 2014-05-27
  • 打赏
  • 举报
回复
otherActivity 中setResult(resultCode);并finish()了么
hellofenny 2014-05-27
  • 打赏
  • 举报
回复
引用 1 楼 lulong1985 的回复:
没看懂搂住想做什么
就是在onActivityResult这个方法中,取到其他页面传过来的值,然后在本页面,添加到listview中去。这个是我想实现的功能,现在的问题是,我在onActivityResult这个方法取到的值,下面的方法Getname用不了。刚刚接触所以不太懂
triplesky001 2014-05-27
  • 打赏
  • 举报
回复
没看懂搂住想做什么

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧