如何在给定资源ID的情况下检索textview的文本

时间:2016-08-10 10:57:45

标签: android android-studio nullpointerexception textview

我有10个textviews,每个都有以下id(s)tv1,tv2,tv3等,每个都有文字。这些文本视图是可点击的,我在sharedprefrence中保存了单击的textview的资源ID。这个ID是一个i​​nt。

现在使用此资源ID,我可以以某种方式获取附加到此资源的文本(此处为TextView)。下面是我试图使用的代码的代码,但它给出了一个空指针异常。

if (!sharedPref.getString(String.valueOf(i), "error").equals("error")) {
int u = Integer.parseInt (sharedPref.getString(String.valueOf(i), "error"));
System.out.println("For "+i+" object Value of id retrieved is-"+u);
String dohass= ((TextView) findViewById(u)).getText().toString();
}

我检查了u的值并且是正确的(正确的资源ID),但上面的代码说我在null对象上使用了getText。

以下是日志

java.lang.RuntimeException: Unable to start activity ComponentInfo{dhritiapps.tulsiramayan/dhritiapps.tulsiramayan.Fav}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.TextView.getText()' on a null object reference 

2 个答案:

答案 0 :(得分:1)

首先,您必须参考textview。

TextView textview= ((TextView) findViewById(R.id.youtextviewid));

然后你可以通过在TextView引用上调用getText来获取字符串值。

String yourtext= textview.getText().toString();

答案 1 :(得分:0)

确保在onCreate中调用setContentLayout()方法后执行此步骤。如果在此之前尝试过,它将给出空指针异常,因为它将无法找到您的textview。

获取texview的参考。

  

TextView textview =(TextView)findViewById(R.id.textviewid);

调用此方法

  

String yourtext = textview.getText()。toString();