2015-01-31 4 views
0

Я довольно новичок в студии Android, и я пытаюсь сделать приложение. У меня есть один вопрос: у меня есть пользовательский ListView, и я хочу добавить элементы в этот ListView, когда я нажимаю кнопку (открываем диалоговое окно с editText). Но мне это не удается! На данный момент мне удалось добавлять элементы в простом окне списка, но я хочу сейчас, чтобы добавить элементы в мой пользовательский ListView:Как добавить элементы в пользовательский ListView

Это мой пользовательский элемент управления ListView (я был вдохновлен Интернет):

public class CustomList extends ArrayAdapter<String> { 
private final Activity context; 
private String[] web; 
private final Integer[] imageId; 
public CustomList(Activity context, 
        String[] web, Integer[] imageId) { 
    super(context, R.layout.list_single, web); 
    this.context = context; 
    this.web = web; 
    this.imageId = imageId; 
} 
@Override 
public View getView(int position, View view, ViewGroup parent) { 
    LayoutInflater inflater = context.getLayoutInflater(); 
    View rowView= inflater.inflate(R.layout.list_single, null, true); 
    TextView txtTitle = (TextView) rowView.findViewById(R.id.txt); 
    ImageView imageView = (ImageView) rowView.findViewById(R.id.img); 
    txtTitle.setText(web[position]); 
    imageView.setImageResource(imageId[position]); 
    return rowView; 
} 

} 

Это теперь мой текущий код, который работает, но только добавить товары в «нормальный» ListView

public class MenuActivity extends Activity { 
ListView listplayer=null; 
ImageButton addButton = null; 
/** Items entered by the user is stored in this ArrayList variable */ 
ArrayList<String> list = new ArrayList<String>(); 

/** Declaring an ArrayAdapter to set items to ListView */ 
ArrayAdapter<String> adapter; 



@Override 
protected void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_menu); 


    listplayer=(ListView) findViewById(R.id.list); 
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list); 



    addButton = (ImageButton) findViewById(R.id.buttonaddplayer); 
    addButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // Create custom dialog object 
      final Dialog dialog = new Dialog(MenuActivity.this); 
      dialog.setTitle(getResources().getString(R.string.addperson)); 
      // Include dialog.xml file 
      dialog.setContentView(R.layout.dialoglayout); 
      // Set dialog title 
      // dialog.setTitle("Custom Dialog"); 

      // set values for custom dialog components - text, image and button 
      final EditText text = (EditText) dialog.findViewById(R.id.editTextdialog); 


      dialog.show(); 

      ImageButton validButton = (ImageButton) dialog.findViewById(R.id.imageButtonvalid); 
      // if decline button is clicked, close the custom dialog 
      validButton.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        list.add(text.getText().toString()); 
        text.setText(""); 
        adapter.notifyDataSetChanged(); 


        dialog.dismiss(); 
       } 
      }); 
      listplayer.setAdapter(adapter); 





     } 
    }); 

} 

Спасибо за помощь мне. На самом деле я хочу сделать приложение, в котором вы можете добавить игрока, но с точки зрения чего-л «красивый», а не список нормалей андроида студии

ответ

0

прочитать эту on adapters

Регулярно проверяйте here

фигуру, где ваши «данные».

onButtonClick() -> вставить новый элемент в 'head' данных вашего адаптера, вызывая 'notifyDataSetChanged()' для обновления вида