Я создаю приложение заметок, и у меня есть listView в моем MainActivity для списка заметок. Кроме того, я не собираюсь добавлять раздел для темы заметки, чтобы он автоматически сохранялся при возврате. но проблема в том, что он сохраняет весь текст в listView. как я могу изменить его, чтобы он показывал только 10-20 стартовых символов?Показывать начальные символы значения edittext в listview
EDIT: Возможно, мне придется изменить некоторые части моего кода, потому что, когда я изменяю элемент listView, текст тоже меняется. мои коды:
MainActivity:
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
static ArrayList<String> notelist = new ArrayList<String>();
static ArrayAdapter notelistAdapter;
ListView noteslistView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
noteslistView = (ListView) findViewById(R.id.noteslist);
notelist.add("My Note");
notelistAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, notelist);
noteslistView.setAdapter(notelistAdapter);
noteslistView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent addedit = new Intent(getApplicationContext(), EditNote.class);
addedit.putExtra("noteID", position);
startActivity(addedit);
}
});
}
}
EditNote активность:
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Gravity;
import android.view.View;
import android.widget.EditText;
public class EditNote extends AppCompatActivity implements TextWatcher {
int noteID;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_note);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
EditText editText = (EditText) findViewById(R.id.edittext);
editText.setGravity(Gravity.TOP);
Intent addedit = getIntent();
noteID = addedit.getIntExtra("noteID", 0);
if (noteID != -1)
{
editText.setText(MainActivity.notelist.get(noteID));
}
editText.addTextChangedListener(this);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
MainActivity.notelist.set(noteID, String.valueOf(s));
MainActivity.notelistAdapter.notifyDataSetChanged();
}
@Override
public void afterTextChanged(Editable s) {
}
}
Нам нужно увидеть какой-то код для того, как вы сохраняете заметки и заполняете ListView. Тем не менее, вы можете просто получить первые символы 'n' из EditText, сделав что-то вроде этого:' String shortNote = editText.getText(). ToString(). Substring (0, Math.min (editText.getText(). Length (), n)); ' –
Поиск метода String.substring()! и прочитайте их: [page1] (http://stackoverflow.com/help/how-to-ask) [страница2] (http://stackoverflow.com/help/mcve) [стр. 3] (http: // stackoverflow.com/help/on-topic) –