我有10个textviews,每个都有以下id(s)tv1,tv2,tv3等,每个都有文字。这些文本视图是可点击的,我在sharedprefrence中保存了单击的textview的资源ID。这个ID是一个int。
现在使用此资源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
答案 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();