如何在方法外部声明一个变量,然后在 OnCreate() 中初始化它们



我的问题与这里的 .getExtras((' 在空对象引用上

相同

但是我不知道如何做 codeMagic说:"你需要在方法外部声明它们并在onCreate((中初始化它们。或者将您需要的值传递给必要的函数">

对不起,我是编程世界的新手。 'package ejemplo1.listaejemplo;

import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class Lista extends Activity {
    private ListView lista;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lista);
        String elem1 = getIntent().getExtras().getString("Nombre");
        String elem2 = getIntent().getExtras().getString("Sexo");
        Espacios[] datos = new Espacios[] {
                new Espacios(elem1, elem2),
                new Espacios("Nombre2", "Sexo2")};
        lista = (ListView)findViewById(R.id.Interesar);
        Adapta adaptador = new Adapta(this, datos);
        lista.setAdapter(adaptador);
    }
    class Adapta extends ArrayAdapter<Espacios> {
        String elem1 = getIntent().getExtras().getString("Nombre");
        String elem2 = getIntent().getExtras().getString("Sexo");
        Espacios[] datos = new Espacios[] {
                new Espacios(elem1, elem2),
                new Espacios("Nombre2", "Sexo2")};
        public Adapta(Context context, Espacios[] datos) {
            super(context, android.R.layout.simple_list_item_2, datos);
        }
        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater = LayoutInflater.from(getContext());
            View item = inflater.inflate(android.R.layout.simple_list_item_2, null);
            TextView texto1 = (TextView) item.findViewById(android.R.id.text1);
            texto1.setText(datos[position].getNombre());
            TextView texto2 = (TextView) item.findViewById(android.R.id.text2);
            texto2.setText(datos[position].getSexo());

            return(item);

        }
    }

}
`

变量声明为类成员elem1elem2,就像对lista变量所做的那样。这允许类中的所有方法都可以访问elem1elem2。完成后,在 onCreate() 方法中将getExtras的值分配给它。

所以例如

public class Lista extends Activity {
    private ListView lista;
    //Here we are declaring our elem variables outside the onCreate() method
    //This means that your "Adapta" class can use them
    private String elem1;
    private String elem2;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lista);
        //And here we are assigning them the values from getExtras()
        elem1 = getIntent().getExtras().getString("Nombre");
        elem2 = getIntent().getExtras().getString("Sexo");
        Espacios[] datos = new Espacios[] {
            new Espacios(elem1, elem2),
            new Espacios("Nombre2", "Sexo2")
        };
        lista = (ListView)findViewById(R.id.Interesar);
        Adapta adaptador = new Adapta(this, datos);
        lista.setAdapter(adaptador);
    }
    class Adapta extends ArrayAdapter<Espacios> {
        //Notice we have removed elem1 and elem2 from the adapter class
        Espacios[] datos = new Espacios[] {
            new Espacios(elem1, elem2),
            new Espacios("Nombre2", "Sexo2")
        };
        public Adapta(Context context, Espacios[] datos) {
            super(context, android.R.layout.simple_list_item_2, datos);
        }
        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater = LayoutInflater.from(getContext());
            View item = inflater.inflate(android.R.layout.simple_list_item_2, null);
            TextView texto1 = (TextView) item.findViewById(android.R.id.text1);
            texto1.setText(datos[position].getNombre());
            TextView texto2 = (TextView) item.findViewById(android.R.id.text2);
            texto2.setText(datos[position].getSexo());
            return(item);
        }
    }
}

我在上面的例子中做了一些评论,我希望这能让事情更清楚一些。

相关内容

  • 没有找到相关文章

最新更新