Вы можете просто создать новый массив, который будет содержать только адреса. Но лучшим подходом было бы создание пользовательского класса (назовем его Product
), который просто содержит геттеры и сеттеры. Затем вы меняете ArrayAdapter
на ArrayAdapter
. Настраивать адаптеры Array довольно просто:
https://www.journaldev.com/10416/android-listview-with-custom-adapter-example-tutorial
РЕДАКТИРОВАТЬ Вот плохое решение, которое я упомянул. Другой занял бы слишком много времени, чтобы я мог напечатать (но вы должны действительно изучить это, потому что это супер распространенная задача в Android):
public class Index extends AppCompatActivity implements
GoogleMap.OnMyLocationButtonClickListener,
GoogleMap.OnMyLocationClickListener, OnMapReadyCallback,
ActivityCompat.OnRequestPermissionsResultCallback {
public static String[] account;
private static final int LOCATION_PERMISSION_REQUEST_CODE = 1;
private boolean mPermissionDenied = false;
private GoogleMap mMap;
String[][] mobileArray = {
new String[] {"150 Goyeau St, Windsor, ON N9A 6J5","Product 1","N/A","3:30pm"},
new String[] {"2000 Talbot Road West, Windsor, ON N9A 6S4","Product 2","N/A","4:00pm"},
new String[] {"350 City Hall Square W, Windsor, ON N9A 6S1","Product 3","N/A","4:30pm"}
};
String[] addressArray = new String[mobileArray.length];
for (int i=0; i(this, R.layout.listview, addressArray);
ListView listView = (ListView) findViewById(R.id.lVDelivery);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView>adapter, View v, int position, long id){
tVSpecial.setText(mobileArray[position][2]);
tVProduct.setText(mobileArray[position][1]);
}
});
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
mMap = map;
mMap.setOnMyLocationButtonClickListener(this);
mMap.setOnMyLocationClickListener(this);
enableMyLocation();
}
private void enableMyLocation() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
PermissionUtils.requestPermission(this, LOCATION_PERMISSION_REQUEST_CODE,
Manifest.permission.ACCESS_FINE_LOCATION, true);
} else if (mMap != null) {
mMap.setMyLocationEnabled(true);
}
}
@Override
public boolean onMyLocationButtonClick() {
Toast.makeText(this, "MyLocation button clicked", Toast.LENGTH_SHORT).show();
return false;
}
@Override
public void onMyLocationClick(@NonNull Location location) {
Toast.makeText(this, "Current location:\n" + location, Toast.LENGTH_LONG).show();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode != LOCATION_PERMISSION_REQUEST_CODE) {
return;
}
if (PermissionUtils.isPermissionGranted(permissions, grantResults,
Manifest.permission.ACCESS_FINE_LOCATION)) {
enableMyLocation();
} else {
mPermissionDenied = true;
}
}
@Override
protected void onResumeFragments() {
super.onResumeFragments();
if (mPermissionDenied) {
showMissingPermissionError();
mPermissionDenied = false;
}
}
private void showMissingPermissionError() {
PermissionUtils.PermissionDeniedDialog
.newInstance(true).show(getSupportFragmentManager(), "dialog");
}
}
Ни один из них не используется для строгой привязки (аспект версии полного / строгого имени взят из AssemblyVersion
].
И версия файла (из атрибута AssemblyFileVersion), и версия продукта (из атрибута AssemblyInformationalVersion) вносят свой вклад в ресурс версии (как видно из свойств файла проводника).
За исключением случаев отображения / диагностики, Только реальное использование установщиками для проверки файла должно быть заменено.
Приложение: почему они могут отличаться? Ответ: Из-за требований к версиям. Сохранение версии сборки одинаковым означает, что обновленная версия (с более высокой версией файла) будет привязана без изменений. Это оказывает большое влияние на сериализацию (например, постоянные рабочие процессы).
Файлы распространяются в рамках более крупного проекта. Файл с индивидуальной версией сборки x может быть распространен как часть версии проекта y.
Для уточнения: A.exe с версией продукта 1.1 поставляется с файлами B.dll и C.dll. Все начинаются с соответствующих версий продукта и файла. Тогда кто-то находит серьезную ошибку в продукте. Разработчик смотрит на это и выпускает исправление, которое только обновляет B.dll. Теперь версия продукта, вероятно, также обновляется до 1.1.1, чтобы учесть незначительное исправление. И версия файла B.dll также будет 1.1.1. Но A.exe и C.dll не изменились, и поэтому их версия файла может быть 1.1.