使用simplesursoradapter我已经提出了一个listview。 我从listview中选择一个项目,并将其保存在变量'titlename'中,并能够在Toast中显示。现在,我想将'titlename'中的这个值传递给文本 查看id'textView3',以便它可以显示在同一活动的屏幕顶部。当我尝试使用以下代码时,我在textView.setText(v_titlename);。
行获得了一个NULL指针异常。a)TextView ID'textView'和'textView2'位于custom_row.xml
中b)TextView ID'textView3'位于Activity_Out.xml
中public void onItemClick(AdapterView<?> parent, View view, int position, long thislist) {
TextView selectedTitle = (TextView)view.findViewById(R.id.textView);
TextView titlename= (TextView)view.findViewById(R.id.textView2);
TextView textView = (TextView) findViewById(R.id.textView3);
v_titlename=titlename.getText().toString();
textView.setText(v_titlename);
Toast.makeText(this, titlename.getText() , Toast.LENGTH_LONG).show();
inputID=selectedTitle.getText().toString(); // the _id of this title is stored in inputID
}
答案 0 :(得分:0)
你需要制作&#34; textView&#34;你班上的一个字段,并在你的活动的onCreate()中调用findViewById()。现在你设置它的方式是textView不为null的唯一方法是将它作为你的适配器视图的一部分,你必须用view.findViewById()来调用它。鉴于你说你想让它成为你活动的首选,你就会把它放在错误的地方。 textView是活动的一部分,而不是列表。
R.id.textView3是生成的Class中的唯一整数。所以,它是有效的&#34;即使它不是该视图的一部分。很多人都在旅行。
public class SomeActivity extends Activity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.Activity_Out);
textView = (TextView) findViewById(R.id.textView3);
// ...
}
// ...
}