Объект TextView приходит null, но имеет ссылку id

-7

Я пытаюсь установить текст в textView но сам объект приходит null, хотя я определил атрибут id в xml. Я получаю значение, которое нужно установить в textView но textView объект textView равен null.

Мероприятия:

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.....));
}

и класс адаптера:

public class CustomAdapter extends BaseAdapter{
String [] result;
String [] result1;
String [] result2;
String [] result3;
String [] result4;
Context context;
int [] imageId;
private static LayoutInflater inflater=null;
public CustomAdapter(ItemActivity mainActivity, String[] prgmNameList,String[] prgmNameList1,String[] prgmNameList2,String[] prgmNameList3,String[] prgmNameList4) {
// TODO Auto-generated constructor stub

context=mainActivity;
inflater = ( LayoutInflater )context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return result.length;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stubb
return position;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

public class Holder
{
TextView tv;
TextView tv1;
TextView tv2;
TextView tv3;
TextView tv4;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Holder holder=new Holder();
View rowView;
rowView = inflater.inflate(R.layout.tabitem, null);
rowView.setBackgroundColor(Color.parseColor("#F1F1FF"));
rowView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "You Clicked "+result[position], Toast.LENGTH_LONG).show();
}
});
return rowView;
}

}

tabitem 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 в действие.

спросил(а) 2021-01-19T15:45:31+03:00 9 месяцев назад
1
Решение
79

Если вы хотите получить доступ к TextView в своем списке, вы не можете получить к нему доступ в своей деятельности, но вы можете в своем адаптере:

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// ...
TextView textviewToModify = rowView.findViewById(R.id.textViewStyle);
return rowView;
}

Вы также должны увидеть, что шаблон ViewHolder имеет лучший функционал. http://developer.android.com/training/improving-layouts/smooth-scrolling.html

ответил(а) 2021-01-19T15:45:31+03:00 9 месяцев назад
66

Попытайтесь использовать это:

 @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;
}

ответил(а) 2021-01-19T15:45:31+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема