В основном я вставки текста вместе с символом новой строки в БД MySQL, как это:Android: Возникли проблемы с новой строки в TextView внутри BaseAdapter
$message = 'Hello World' . "\n";
$message .= 'This is a test' . "\n";
$message .= 'Thanks;
При сохранении сообщения в БД, я попытался установить значение новой линии как \n
, \\n
, \\\n
, \\\\n
и даже <br>
вместо \n
затем используется fromHtml
в приложении для Android, но ничего не получается.
В db, я вижу, что есть новая линия.
на Android приложение, которое я хочу, чтобы иметь символ новой строки, если какой-либо показал в TextView, я пробовал различные вещи, но ничего не работает, я пытался что-то вроде:
String message = m.getMessage().toString();
message = message.replaceAll("\\n",
System.getProperty("line.separator"));
Здесь вместо "\\n"
я также пытались "\\\n"
, "\n"
и даже "\\\\n"
и:
Spanned html = Html.fromHtml(m.getMessage());
и:
message.replaceAll("\n","<br />");
message.replaceAll("\r\n","<br />");
message.replaceAll("\r","<br />");
И:
android:singleLine="false"
С различными вещами пытался, в TextView я получаю текст как эти перестановки:
Hello WorldThis is a testThanks
Hello World\This is a test\Thanks
Hello World\nThis is a test\nThanks
Вот мой полный код:
public class MessageListAdapter extends BaseAdapter {
private Context context;
private List<ListMessage> messagesItems;
public MessageListAdapter(Context context, List<ListMessage> navDrawerItems) {
this.context = context;
this.messagesItems = navDrawerItems;
}
@Override
public int getCount() {
return messagesItems.size();
}
@Override
public Object getItem(int position) {
return messagesItems.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@SuppressLint("InflateParams")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
/**
* The following list not implemented reusable list items as list items
* are showing incorrect data Add the solution if you have one
* */
ListMessage m = messagesItems.get(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
// Identifying the message owner
if (messagesItems.get(position).isSelf()) {
// message belongs to you, so load the right aligned layout
convertView = mInflater.inflate(R.layout.list_item_message_right,
null);
} else {
// message belongs to other person, load the left aligned layout
convertView = mInflater.inflate(R.layout.list_item_message_left,
null);
}
TextView lblFrom = (TextView) convertView
.findViewById(R.id.lblMsgFromListMessage);
TextView lblTo = (TextView) convertView
.findViewById(R.id.lblMsgToListMessage);
lblFrom.setText(m.getFromName());
// Spanned html = Html.fromHtml(m.getMessage());
// String message = html.toString();
String message = m.getMessage().toString();
message = message.replaceAll("\\n",
System.getProperty("line.separator"));
try {
lblTo.setText(message);
} catch (Exception e) {
lblTo.setText(message);
}
return convertView;
}
}
TextView в макете:
<TextView
android:id="@+id/lblMsgToListMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="50dp"
android:background="@drawable/chat_bg_msg_from"
android:paddingBottom="@dimen/five_dp"
android:paddingLeft="@dimen/ten_dp"
android:paddingRight="@dimen/ten_dp"
android:paddingTop="@dimen/five_dp"
android:textColor="@color/chat_title_gray"
android:textSize="@dimen/eighteen_sp" />
Что-то не так с baseAdaptor
? Где-то я увидел this link, он предложил SimpleAdapter
проблема с настройкой html, но в моем случае это не помогает, так как я использую BaseAdapter
.
Я буду очень благодарен действительно за вашу помощь, как я потратил пять часов на новой линии выпуска :(
try \ r with \ n as \ n \ r – raj