set Text in the options of a listview

0

I'm doing a listview and I want each option to access an activity created separately, but that activity accesses a different text of each option. Can you help me?? I have created three classes (one is Main activity, another is the adapter of my listview, and the last one is where I intend to put the other activity to which the first activity is accessed)

-First I put the MainActivity: package com.example.nando.grab;

import android.app.Activity;

import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast;

import com.androidmorefast.moden.appreconocmientovoz.R;

import java.util.ArrayList; import java.util.List;

public class MainActivity extends Activity {     private ListView cutrijos;     List riddles, ask;     MyAdapter myAdapter;     verAcertijo verAcertijo;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    cutrijos = (ListView) findViewById(R.id.cutrijos);
    acertijos = new ArrayList<String>();
    acertijos.add("El asesino de la pastilla");
    acertijos.add("Acertijo 2");
    cutrijos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent(getApplicationContext(), verAcertijo.class);
            startActivity(intent);
        }
    });

    pregunta = new ArrayList<>();
    pregunta.add("Un asesino en serie secuestraba a la gente y la hacía tomar una de dos pastillas: una de ellas no hacía ningún daño y la otra mataba de inmediato. El asesino se tomaba la pastilla restante. El secuestrado se tragaba la pastilla, bebía agua y moría al instante y al asesino siempre le tocaba la píldora inofensiva. ¿Por qué al asesino jamás le tocó la pastilla envenenada?");

    ArrayAdapter<String> adp = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, acertijos);
    cutrijos.setAdapter(adp);


            MyAdapter myAdapter = new MyAdapter(this, R.layout.cutrij, acertijos);
    cutrijos.setAdapter(myAdapter);}}

Now, activity_main:

<ListView
    android:id="@+id/cutrijos"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:background="@drawable/cutrijo" />

  • Now MyAdapter: package com.example.nando.grab;

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

import com.androidmorefast.moden.appreconocmientovoz.R;

import java.util.List;

public class MyAdapter extends BaseAdapter {

private Context context;
private int layout;
private List<String> acertijos;
public MyAdapter (Context context, int layout, List<String> cutrijos){
    this.context = context;
    this.layout = layout;
    this.acertijos = cutrijos;
}
@Override
public int getCount() {
    return acertijos.size();

}

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

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

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
    View v = convertView;
    LayoutInflater layoutInflater = LayoutInflater.from(this.context);
    v = layoutInflater.inflate(R.layout.cutrij, null);
    String currentName = acertijos.get(position);
    TextView txt = (TextView) v.findViewById(R.id.txt);
    ImageView iv = (ImageView) v.findViewById(R.id.iV);
    txt.setText(currentName);
    iv.setImageResource(layout);
    return v;
}

} With its xml which I called cutrij:

<TextView
    android:id="@+id/txt"

    android:layout_width="300dp"
    android:layout_height="70dp"
    android:layout_marginEnd="60dp"
    android:layout_marginRight="60dp"
    android:gravity="center_vertical"
    android:text="TextView"
    android:textColor="@android:color/black"
    android:textColorHighlight="@android:color/holo_orange_dark"
    android:textSize="24sp"
    android:textStyle="bold|italic"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<ImageView
    android:id="@+id/iV"
    android:layout_width="60dp"
    android:layout_height="70dp"
    android:background="@color/colorPrimaryDark"
    android:scaleType="fitXY"
    android:visibility="visible"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:srcCompat="@android:drawable/btn_star_big_on" />

-This is the other activity where I want a different text to appear for each option pressed: package com.example.nando.grab;

import android.content.ClipData; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.AdapterView; import android.widget.Button; import android.widget.TextView;

import com.androidmorefast.moden.appreconocmientovoz.R;

public class verAcertijo extends AppCompatActivity {     TextView txt;     private Button btn;

private MainActivity mainActivity;
MyAdapter myAdapter;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ver_acertijo);

    txt = (TextView) findViewById(R.id.txt);
    btn = (Button) findViewById(R.id.btn);

    }

} With your xml:

<TextView
    android:id="@+id/txt"
    android:layout_width="352dp"
    android:layout_height="232dp"
    android:layout_marginEnd="4dp"
    android:layout_marginRight="4dp"
    android:layout_marginTop="16dp"
    android:text="Aquí  estará el acertijo"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="108dp"
    android:text="solucion"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />

I want to do it without having to create fifty activitys, because I'm sure there is some way.

Thanks for the help

    
asked by Black Link 18.06.2018 в 10:50
source

0 answers