0
私はAndroidのshopplinglistアプリケーションを実装していて、ユーザー入力からアイテムを取得するListViewのすべてのアイテムを削除するために2番目のボタンを作成しました。ご覧のとおり、アイテムをListViewに追加するためのアダプタを実装しました。そして私が知る限りでは、アイテムを削除するために私のアダプタに再びアクセスする必要があります。私は2番目のonClickメソッドにあり、最初のonClickメソッドで作成されたアダプタにはアクセスできません。別のメソッドからアンドロイドスタジオのアダプタにアクセスする
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
Button btn;
EditText txt;
ListView lst;
Button btn_delete;
ArrayList<String> arrylist = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn_send);
txt = (EditText) findViewById(R.id.editText);
lst = (ListView) findViewById(R.id.list);
btn_delete =(Button) findViewById(R.id.button_delete);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String getInput = txt.getText().toString();
if (arrylist.contains(getInput)){
Toast.makeText(getBaseContext(), getResources().getString(R.string.alreadyContains),Toast.LENGTH_LONG).show();
}
else {
if (getInput == null || getInput.trim().equals("")) {
Toast.makeText(getBaseContext(), getResources().getString(R.string.Emptyinput), Toast.LENGTH_LONG).show();
} else {
arrylist.add(getInput);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_multiple_choice, arrylist);
lst.setAdapter(adapter);
lst.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
((EditText) findViewById(R.id.editText)).setText(" ");
}
}
}
});
btn_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(MainActivity.this.arrylist.isEmpty()){
Toast.makeText(getBaseContext(), getResources().getString(R.string.delete_isEmpty), Toast.LENGTH_LONG).show();
}
else{
lst.setAdapter(null);
// I need to use notifityDataSetChanged, but cannot access my adapter
}
}
});
}
}
を助けている場合、私に教えてください:ArrayAdapter tmpAdapter =(ArrayAdapter )lst.getAdapter();.このヘルプが欲しい! –