getStringExtra()工作,但getIntExtra()返回null

问题描述:

当我试图传递一个字符串额外的下一个活动,它工作正常。当我尝试像下面的代码那样传递int时,它会崩溃并抛出Resources $ NotFoundException。我一直在玩它几个小时,所以我想我可以得到一些指导。getStringExtra()工作,但getIntExtra()返回null

这是不同于传递值与putExtra()

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     // TODO Auto-generated method stub 
     Intent cP = new Intent("com.example.loldb.championscreen"); 
     int x = arg2 + 1; 
     System.out.println(x); 
     cP.putExtra("champNo", x); 
     startActivity(cP); 

    } 

活动代码和这里的接收活动的努力getIntExtra()数据

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_champion_screen); 

    Intent intent = getIntent(); 

    TextView cName = (TextView) findViewById(R.id.cname); 
    int temp = intent.getIntExtra("champNo", 0); 

    //int champNo = Integer.parseInt(temp); 

    cName.setText(temp); 


} 

如果代码可能我想解释一下这个问题,所以我可以多一点理解它。 在此先感谢。

更改为

cName.setText(String.valueOf(temp)); 

setText将采取charactersequence。有一个采用int值作为资源。如果没有找到,你最终得到ResourceNotFoundException

public final void setText (int resid) 

使残差为int。

你需要

public final void setText (CharSequence text) 

添加哪些API等级1 设置的TextView的字符串值。 TextView不接受类似HTML的格式,您可以使用XML资源文件中的文本字符串进行格式设置。要设置字符串的样式,请将android.text.style。*对象附加到SpannableString,或者参阅可用资源类型文档以获取在XML资源文件中设置格式化文本的示例。

+0

哦,我认为这是一个int,实际上是一个整数。它永远不会让我知道这是一种资源。谢谢! – user3370206 2014-09-28 04:13:53

+0

@ user3370206看看setText @ http://developer.android.com/reference/android/widget/TextView.html – Raghunandan 2014-09-28 04:15:18