Каково различие между FileVersion dll и ProductVersion?

Вы можете просто создать новый массив, который будет содержать только адреса. Но лучшим подходом было бы создание пользовательского класса (назовем его 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(AdapterViewadapter, 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");
}

}

38
задан Joel Coehoorn 30 August 2016 в 02:19
поделиться

2 ответа

Ни один из них не используется для строгой привязки (аспект версии полного / строгого имени взят из AssemblyVersion ].

И версия файла (из атрибута AssemblyFileVersion), и версия продукта (из атрибута AssemblyInformationalVersion) вносят свой вклад в ресурс версии (как видно из свойств файла проводника).

За исключением случаев отображения / диагностики, Только реальное использование установщиками для проверки файла должно быть заменено.

Приложение: почему они могут отличаться? Ответ: Из-за требований к версиям. Сохранение версии сборки одинаковым означает, что обновленная версия (с более высокой версией файла) будет привязана без изменений. Это оказывает большое влияние на сериализацию (например, постоянные рабочие процессы).

22
ответ дан Richard 27 November 2019 в 03:48
поделиться

Файлы распространяются в рамках более крупного проекта. Файл с индивидуальной версией сборки 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.

27
ответ дан Joel Coehoorn 27 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: