Расширение файла по умолчанию исполняемого файла, созданного g ++ под Cygwin по сравнению с Linux

Обновите ваш list_item_distribuidor.xml ниже одного

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android" >

    <ImageView
        android:id="@+id/imgListaProdutos"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="@mipmap/ic_acai"
        android:layout_marginLeft="8dp"
        />

    <TextView
        android:id="@+id/txtDistribuidor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="@+id/imgListaProdutos"
        />

    <ImageView android:id="@+id/imgListaStar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@mipmap/ic_star_round"
        android:layout_alignParentTop="@+id/imgListaProdutos"
        android:layout_marginLeft="30dp"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>

и свой класс ItemAdapter.java ниже одного

package com.pedido.meu.telas_meu_pedido;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.ArrayList;

public class ItemAdapter extends BaseAdapter
{
    private Context context;
    private ArrayList<Integer> listaId;
    private ArrayList<String> listaNome;
    private ArrayList<Integer> listaStar;

    public ItemAdapter(Context context, ArrayList<Integer> listaId, ArrayList<String> listaNome, ArrayList<Integer> listaStar)
    {
        this.context = context;
        this.listaId = listaId;
        this.listaNome=listaNome;
        this.listaStar=listaStar;
    }

    public ItemAdapter(ListaProdutosActivity listaProdutosActivity, ArrayList<Integer> idImages, ArrayList<String> nameList)
    {
        this.context=listaProdutosActivity;
        this.listaId=idImages;
        this.listaNome=nameList;
    }

    @Override
    public int getCount()
    {
        return listaNome.size();
    }

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

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

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

        if (convertView == null)
        {
            convertView = View.inflate(context, R.layout.list_item_produtos, null);
        }
        ImageView img = convertView.findViewById(R.id.imgListaProdutos);
        TextView tv =  convertView.findViewById(R.id.txtListItemProduto);
        ImageView imgStar = convertView.findViewById(R.id.imgListaStar);
        img.setImageResource(listaId.get(position));
        tv.setText(listaNome.get(position));
        imgStar.setImageResource(listaStar.get(0));
        return convertView;
    }
}

вы не устанавливали изображение, дайте мне знать, если оно работала

8
задан 11 revs, 3 users 100% 6 January 2009 в 10:28
поделиться

7 ответов

Это легко: на UNIX Вам не нужен никакой steenkin' расширения. На самом деле "расширение" как.c является просто удобным соглашением о присвоении имен; в отличие от Windows, файловая система рассматривает имя файла как одну строку.c и так далее.

В течение действительно хорошего времени скомпилируйте программу C без -o флаг вообще. Ваш исполняемый файл все еще разоблачит---, названный именем по умолчанию для исполняемых файлов: a.out.

18
ответ дан 5 December 2019 в 04:37
поделиться

Это - просто соглашение о присвоении имен. На Unix/Linux исполняемые файлы не имеют расширения, просто исполняемый бит.

12
ответ дан 5 December 2019 в 04:37
поделиться

Если Вы задавались вопросом, как выполнить программу на UNIX, просто перейти к папке с Вашей программой, Вы хотите выполниться (aprogram) и тип

./aprogram

Это скажет оболочке, что Вы хотите выполнить 'aprogram' в текущем каталоге.

4
ответ дан 5 December 2019 в 04:37
поделиться

.exe является вещью окон. Unix не заботится о расширениях. Исполняемость основана на метаданных по файлу, а также содержанию файла. g ++ через cygwin не действительно приложение Windows, таким образом, он несет свои корни Unix с ним.

6
ответ дан 5 December 2019 в 04:37
поделиться

Исполняемые файлы не имеют никакого расширения в мире Unix, потому что они предназначены, чтобы быть выполненными в оболочке. Вообразите следующее:

cat.bin file.txt | less.bin

Это ужасно! Unix использует так называемые волшебные байты в начале каждого файла для обнаружения типа файла. Для двоичного формата по умолчанию, названного ELF, существует 4-байтовое слово 7f 45 4c 46 в запуске. Это не возможно для всех форматов файлов. Рассмотрите код C или код Java. Они могут и запустить с комментариев и могут быть сделаны взглядом точно тем же. Таким образом, все еще необходимо использовать расширения файла, и это - хорошая вещь при использовании, где это является соответствующим.

3
ответ дан 5 December 2019 в 04:37
поделиться

Если Вы хотите, чтобы вывод имел .exe расширение, затем просто используют флаг-o, чтобы сделать так (например,-o aprogram.exe). Это будет работать просто великолепно в соответствии с Linux так или иначе.

Способность выполнить программу в соответствии с Linux основана на полномочиях файла (см. chmod). Выполнитесь полномочия будут автоматически установлены gcc/g ++.

2
ответ дан 5 December 2019 в 04:37
поделиться

ls / мусорное ведро существуют партия программ и всех их без расширения :)

ls-l / мусорное ведро, Вы будете видеть, что у всех них есть флаг +x для маркировки их как исполняемый файл.

1
ответ дан 5 December 2019 в 04:37
поделиться
Другие вопросы по тегам:

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