android-使用 intent 发送 view 的 id,获取 “false” 提示

问题描述

使用 intent 发送 view 的 id,获取 “false” 提示

下面的类里的信息我想把它包含在intent里面发送给一个activity。当图片按钮“superman”按下的时候,onClick()方法会发送intent给SuperheroActivity。但是当我试着在另一个activity里面检索信息的时候,得到了“false”

public class MenuActivity extends Activity implements
    OnClickListener {
private ImageButton superman;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);

    superman = (ImageButton) findViewById(R.id.superman);
    superman.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    Intent intent = new Intent(MenuActivity.this, SuperheroActivity.class);
    intent.putExtra("id", v.getId());
    startActivity(intent);
}
}

SuperheroActivity:

Intent intent = getIntent();
id = intent.getIntExtra("id", 0);
// This is just a dirty way for me to see the value of the id I am getting.
TextView text = (TextView) findViewById(R.id.superheroText);
text.setText(id);

解决方案

text.setText(id);这行有问题吧,int型的值不能直接赋给text.setText();正确的写法:text.setText(id+"");

解决方案二:

findViewById(int id);
先理解一下这个方法,参数是int类型,android中的组件会转换成16进制存放与R文件中,查找的时候就通过相应的数值查找

针对你当前的问题,text.setText(id);如果里这里传int类型那个,源码中调用的方法为:
public final void setText(int resid) {
setText(getContext().getResources().getText(resid));
}
也就是说虚拟机会去查找当前resid所代表的值,很明显此时找不到
多看一下源码就能理解调用什么方法了

时间: 2024-11-03 07:53:37

android-使用 intent 发送 view 的 id,获取 “false” 提示的相关文章

Android使用Intent发送短信的实现方法_Android

本文实例讲述了Android使用Intent发送短信的实现方法.分享给大家供大家参考,具体如下: 在一个Activity中使用Intent发送短信 package com.zhuguangwei; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.

Android使用Intent发送短信的实现方法

本文实例讲述了Android使用Intent发送短信的实现方法.分享给大家供大家参考,具体如下: 在一个Activity中使用Intent发送短信 package com.zhuguangwei; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.

Android中Intent的获取问题

问题描述 Android中Intent的获取问题 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 AndroidMani

Android如何在自定义view中发送消息给主线程

问题描述 Android如何在自定义view中发送消息给主线程 求求各位大神支招,小弟在自己开发一个东西,遇到了一个小问题. ![ 图片说明](http://img.ask.csdn.net/upload/201603/15/1458054689_616589.jpg) 我在自定义view的onDraw里,当条件达到后就开启一个子线程发送消息给主线程,让主线程中的handler接收消息并执行相应的动作,可是在Log的输出下只能输出"子线程,"而没有"handlemessage

textview-给动态加载的TextView设置同一个监听(参数传递进来的),获取View的id的时候都是-1

问题描述 给动态加载的TextView设置同一个监听(参数传递进来的),获取View的id的时候都是-1 给动态加载的TextView设置同一个监听(参数传递进来的),获取View的id的时候都是-1,求大神帮帮忙啊 解决方案 怎么动态加载的?设置id了吗? 解决方案二: 解决方案三: 捏这个listener绑定到dialog了?你给dialog附id值了吗 解决方案四: dialog是不能这样绑定监听的哦

【Android】 Intent应用详解

转载:http://blog.csdn.net/liuhe688/article/details/7162988 看似尋常最奇崛,成如容易卻艱辛.北宋.王安石 看似普通的事情其实最不同寻常,并不是简简单单就可以做好的:成功看起来似乎很容易,而成功的过程却充满着艰辛. 对于我们认为很普通的事情,不屑一顾,就永远不会有长进,脚踏实地,就离成功又近一步:成功并不像看到的那么容易,寻找捷径是不可取的,我们往往要比别人付出更多的辛勤和努力. 今天我们来讲一下Android中Intent的原理和应用. 前面

【Android】 Intent详解

一. Intent 作用    Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯.比如说调用startActivity()来启动一个activity,或者由broadcaseIntent()来传递给所有感兴趣的BroadcaseReceiver, 再或者由startService()/bindservice()来启动一个后台的service.所以可以看出来,intent主要是用来启动其他的activity 或者se

详解Android中Intent传递对象给Activity的方法_Android

Activity回顾 activity是android程序中最重要的组件之一,它是用户与android用户交互的主要组件,类似于桌面程序的图形界面.android程序大致可以分为看的见的组件和看不见的service.看得见的组件主要就是在Activity中定义,看不见的service,包括service,BroadCastReceiver,ContentProvider等等,这是后话.今天先来大致了解一下activity. 可以理解activity为盛放组件的容器,和用户交互的组件都要放在Act

Android中Intent机制详解及示例总结(总结篇)_Android

最近在进行android开发过程中,在将 Intent传递给调用的组件并完成组件的调用时遇到点困难,并且之前对Intent的学习也是一知半解,最近特意为此拿出一些时间,对Intent部分进行了系统的学习并进行了部分实践,下面将自己的学习及Intent知识进行了详细的归纳整理,希望能帮助到同样遇到相同问题的博友. 下面是Intent介绍.详解及Intent示例总结: 一.Intent介绍: Intent的中文意思是"意图,意向",在Android中提供了Intent机制来协助应用间的交互