textview.getLayout()
возвращает null
в ListViewAdapter.getView()
андроид TextView getlayout вернуть Null
Я предполагаю, что я звоню textview.getLayout()
слишком рано, до появления сообщения textview
.
Когда мне позвонить textview.getLayout()
?
Если я использую ниже код, называемый getView()
с ontinuously
ViewTreeObserver vto = textview.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Layout layout = textview.getLayout();
textview.setText("something")
}
});
и textview.post(Runnable)
возвращает null
слишком
Layout layout = textview.getLayout();
String splitedText = text.substring(0, layout.getLineEnd(maxLines -1)).trim();
splitedText = splitedText + " ..." + moreStr;
Использование layout.getLineEnd
производит исключения нулевого указателя.
На этом этапе текстовое представление не равно null, но getLayout() возвращает null. Текстовое представление представляется инициализированным.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Context context = parent.getContext();
ViewHolder holder = new ViewHolder();
if(convertView == null)
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
.....
holder.timeLineContents = (TextView) convertView.findViewById(R.id.item_time_line_contents);
Просьба показать, как вы инициализировали «текстовое представление». – Keshav1234
Вы уверены, что текст правильно инициализирован? Вы делаете это в деятельности или фрагменте? В своей деятельности я бы сделал это в методе onCreate. В фрагменте сделайте это в методе onCreateView. – Aster
инициализированное текстовое изображение, подобное этому держателю.timeLineReply = (TextView) convertView.findViewById (R.id.time_line_reply_tv); – jcmhong