Android 获取数组的元素位置

Android 获取数组的元素位置,android,Android,我正在android studio中开发一个小项目,在那里我有一个listview,数据通过数组输入。但我需要的是,当用户根据加载其他活动中所有数据的元素的位置从列表中选择某个元素时 发送数据的类(位置) 类,该类接收并显示 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.noticas_v

我正在android studio中开发一个小项目,在那里我有一个listview,数据通过数组输入。但我需要的是,当用户根据加载其他活动中所有数据的元素的位置从列表中选择某个元素时

发送数据的类(位置)

类,该类接收并显示

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.noticas_valor_layout);

    /*Intent mIntent = getIntent();
    int intValue = mIntent.getIntExtra("valor",0);*/
    int intValue= getIntent().getIntExtra("valor",0);
    TextView a = (TextView) findViewById(R.id.txttitulo2);
    a.setText(mList.get(intValue).getTitulo());
    TextView b = (TextView) findViewById(R.id.txttexto2);
    b.setText(mList.get(intValue).getTexto());
}

onListItemClick()
方法中,更改此代码:

mList.get(position);
Intent intent = new Intent(getBaseContext(), NoticiasValor.class);
intent.putExtra("valor","position");
startActivity(intent);
为此:

NoticiasDados item = mList.get(position);
Intent intent = new Intent(getBaseContext(), NoticiasValor.class);
intent.putExtra("valor",item);
startActivity(intent);
NoticiasDados item = getIntent().getParcelableExtra("valor");
然后在接收活动中,更改以下内容:

int intValue= getIntent().getIntExtra("valor",0);
为此:

NoticiasDados item = mList.get(position);
Intent intent = new Intent(getBaseContext(), NoticiasValor.class);
intent.putExtra("valor",item);
startActivity(intent);
NoticiasDados item = getIntent().getParcelableExtra("valor");

请注意,这需要您的
notifiasdados
类实现。如果还没有,您可以查看此项以了解更多信息:

我修改了
onListItemClick
方法,这样它就不会在intent中传递字符串“position”,而是传递变量
I
,该变量包含用户单击位置处的对象

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    NoticiasDados i = mList.get(position);
    Intent intent = new Intent(getBaseContext(), NoticiasValor.class);
    intent.putExtra("valor", i);
    startActivity(intent);
}
我还修改了类中的onCreate方法,该方法接收使用您在
noticeIASDados
类中创建的
get
方法的意图

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.noticas_valor_layout);

    int intValue = getIntent();
    NoticiasDados i = intValue.getSerializableExtra("valor");
    TextView a = (TextView) findViewById(R.id.txttitulo2);
    a.setText(i.getTitulo());
    TextView b = (TextView) findViewById(R.id.txttexto2);
    b.setText(i.getTexto());
}

另外,请确保您的
notifiasdados
实现可序列化

@JavaTest不执行
notifiasdados
实现
Parcelable
?intent.putExtra(“valor”,“Parcelable”项);-无错误a.setText(mList.get(item.getitulo());-获取项目中的错误那么问题是什么?这个问题的题目太令人困惑了。我无法理解您没有得到什么?为了得到位置,您的代码似乎是正确的,而对于项目,则取决于
mList
在内存中的存储方式。@BirendraSingh在接收位置值的页面中,我无法转到数组并显示数据。我进行了调试,在发送位置的页面中,一切都是正确的,但在接收的页面中,我无法获得位置的值,然后传递值本身。正如您的代码所示,您在单击位置使用项目中的两个字符串,请通过intent传递这两个字符串。如果需要传递整个对象,则需要序列化项目。实现Parcelable或将项目属性保存在SharedReferences等中,并根据SharedReferences值重建项目。如果需要示例代码,请告诉我。intent.putExtra(“valor”,i);-获取错误,无法解决方法Putextra我必须做一些更改,但它会发出呜呜声,谢谢soo Muchy欢迎您。请确保对答案进行投票,并将其标记为回答了您的问题。谢谢,祝你的应用程序好运。