2017-02-13 6 views
-2

Я создаю приложение заметок, и у меня есть 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) { 

    } 
} 
+2

Нам нужно увидеть какой-то код для того, как вы сохраняете заметки и заполняете ListView. Тем не менее, вы можете просто получить первые символы 'n' из EditText, сделав что-то вроде этого:' String shortNote = editText.getText(). ToString(). Substring (0, Math.min (editText.getText(). Length (), n)); ' –

+1

Поиск метода String.substring()! и прочитайте их: [page1] (http://stackoverflow.com/help/how-to-ask) [страница2] (http://stackoverflow.com/help/mcve) [стр. 3] (http: // stackoverflow.com/help/on-topic) –

ответ

0

Используйте метод String#substring() где вы показываете строку в вашем адаптере.


Пример для возвращения первых 14 символов вашей строки и добавление "..." к нему:

String titleSubstring = "Really long title to shorten".substring(0, 14) + "..."; 

Это вернет Really long ti....