Android 即使有id引用,TextView对象仍将为空
我试图在Android 即使有id引用,TextView对象仍将为空,android,Android,我试图在textView上设置一个文本,但对象本身为空,即使我在xml中定义了id属性。。我正在获取要在textView中设置的值,但是textView对象本身为空 活动: public class ItemActivity extends Activity { ListView lv; Context context; ArrayList prgmName; String dateStr=null; @Override protected
textView
上设置一个文本,但对象本身为空,即使我在xml中定义了id属性。。我正在获取要在textView
中设置的值,但是textView
对象本身为空
活动:
public class ItemActivity extends Activity {
ListView lv;
Context context;
ArrayList prgmName;
String dateStr=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final boolean customTitleSupported =
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.itemlist);
if(customTitleSupported){
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.item);
}
final TextView myTitleText = (TextView) findViewById(R.id.showRoomTextView);
final TextView textViewStyle = (TextView) findViewById(R.id.textViewStyle);
ArrayList<InvoiceData> invoiceList = (ArrayList<InvoiceData>) getIntent().getSerializableExtra("invoiceList");
for(int i=0;i<invoiceList.size();i++){
if (myTitleText != null) {
myTitleText.setText(invoiceList.get(i).getCompl_Name());
}
String prdNo=invoiceList.get(i).getPrd_No();
if(prdNo!=null) {
System.out.println("no..." + invoiceList.get(i).getPrd_No()+""+textViewStyle);
textViewStyle.setText(invoiceList.get(i).getPrd_No());
}
}
context=this;
lv=(ListView) findViewById(R.id.listView);
lv.setAdapter(new CustomAdapter(this,params.....));
}
选项卡项xml是
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_weight="1"
>
<LinearLayout
android:layout_width="75dp"
android:layout_height="wrap_content" android:orientation="vertical">
<TextView
android:id="@+id/textView1"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="10dp"
android:textColor="#000000"
android:text="TextView" />
<TextView
android:id="@+id/textViewStyle"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="10dp"
android:textColor="#000000"
/>
</LinearLayout>
我正在尝试在“活动”中设置textViewStyle。如果要访问列表中的TextView,则无法在“活动”中访问它,但可以在适配器中访问它:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// ...
TextView textviewToModify = rowView.findViewById(R.id.textViewStyle);
return rowView;
}
您还应该看到ViewHolder模式以获得更好的性能。
尝试使用以下方法:
@Override
public View getView(int position, View view, ViewGroup parent) {
if (view == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.custom_remarks, null);
textViewStyle= (TextView) view.findViewById(R.id.textViewStyle);
textViewStyle.setText("TextViewStyle");
}
return view;
}
你有什么错误吗?如果是,请发布错误日志。上述xml代码属于
itemlist
或item
布局,原因是:java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.TextView.setText(java.lang.CharSequence)'在空对象上,tabitem.xml的引用未在activitydefined中定义,仅在Adapter中定义此处的行视图是什么?TextView textviewToModify=(TextView)convertView.findViewById(R.id.textViewStyle);将工作..,现在我需要将数据从活动传递到适配器…谢谢
@Override
public View getView(int position, View view, ViewGroup parent) {
if (view == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.custom_remarks, null);
textViewStyle= (TextView) view.findViewById(R.id.textViewStyle);
textViewStyle.setText("TextViewStyle");
}
return view;
}