я управляю Baseadapter с помощью arraylist, как мне обновить свой listView - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь обновить свой список с помощью Экстраданных, которые я получил из другого вида деятельности.

Я управляю своим TutorAdapter, который расширен из Baseadapter с помощью arraylist, и код выглядит следующим образом:

class TutorAdaptor extends BaseAdapter{
ArrayList<TutorItem> tutors=new ArrayList<TutorItem>();
@Override
public int getCount() {

    return tutors.size();
}
public void addItem(TutorItem item){

    tutors.add(item);
}

@Override
public Object getItem(int position) {
    return tutors.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    TutorItemView view;

    if(convertView == null){
        view = new TutorItemView(getApplicationContext());
    }else{
        view = (TutorItemView) convertView;
    }
    TutorItem item = tutors.get(position);
    view.setTitle(item.getTitle());
    view.setPrice(item.getPrice());
 return view;
}

и я первоначально добавил Items в метод onCreate, используя метод addItem из адаптера

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_show_tutor);

    Button button = (Button) findViewById(R.id.tutorButton);
    Button button2 = (Button) findViewById(R.id.tutorFindButton);
    Button writeButton = (Button) findViewById(R.id.wrtieButton);
    writeButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(v != null){
                showTutorWrite();}
        }
    });
    listView = (ListView) findViewById(R.id.listView);

    adaptor =new TutorAdaptor();
    adaptor.addItem(new TutorItem("title: korean speaking for beginners","price: 10 euro per hour"));
    adaptor.addItem(new TutorItem("title: korean grammar for beginners","price: 5 euro per hour"));

   listView.setAdapter(adaptor);
}

Итак, теперь я хочу добавить Item из данных, полученных от tutorWriteView.

это код из tutorWrite View,

        saveButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            returnToShowTutor();
        }
    });
}
 public void returnToShowTutor(){
String name = nameText.getText().toString();
 String title = titleText.getText().toString();
 Intent intent = new Intent();
 intent.putExtra("Name",name);
 intent.putExtra("title",title);
 setResult(RESULT_OK, intent);
 finish();

}

и это код в главном представлении для получения дополнительных данных из tutorWriteView,

 public void onActivityResult(int requestCode, int resultCode, @Nullable Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    if (requestCode == 101) {
        if(intent !=null){
        name = intent.getStringExtra("Name");
        title = intent.getStringExtra("Title");
       TutorItem val = new TutorItem("name:"+name,"title:"+title);
        if(name !=null && title !=null){
            adaptor.addItem(val);
            adaptor.notifyDataSetChanged();
           }
        }
    }
}

это то, что я написал в соответствии с информацией я нашел на Inte rnet. но когда я активирую приложение и нажимаю кнопку saveButton, просмотр списка не обновляется, поэтому, пожалуйста, помогите мне, что я сделал неправильно и как я могу изменить свой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...