Android 如何使用requestcode将文本和img从Listview获取到另一个活动

Android 如何使用requestcode将文本和img从Listview获取到另一个活动,android,listview,Android,Listview,我正在尝试从listview中获取文本和图像,以使用请求代码的一些图像视图(按钮)和文本视图。此时,我出现了错误“java.lang.RuntimeException:未能将resultResultInfo{who=null,request=1,result=-1,data=intent{(has extras)}}传递到活动 主要活动 public class MainActivity extends AppCompatActivity implements View.OnClickList

我正在尝试从listview中获取文本和图像,以使用请求代码的一些图像视图(按钮)和文本视图。此时,我出现了错误“java.lang.RuntimeException:未能将resultResultInfo{who=null,request=1,result=-1,data=intent{(has extras)}}传递到活动

主要活动

public class MainActivity extends AppCompatActivity implements 
View.OnClickListener{

final int REQUEST_CODE_PLAYER1 = 1;
final int REQUEST_CODE_PLAYER2 = 2;
int position;
String[] name;
int[] photo;
TextView playerName1;
TextView playerName2;

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

    playerName1 = (TextView)findViewById(R.id.playerName1);
    playerName2 = (TextView)findViewById(R.id.playerName2);
    btnPlayer1 = (ImageView)findViewById(R.id.imgPlayer1);
    btnPlayer2 = (ImageView)findViewById(R.id.imgPlayer2);
    btnPlayer1.setOnClickListener(this);
    btnPlayer2.setOnClickListener(this);

    public void onClick(View v) {
    Intent intent;
    switch (v.getId()) {
        case R.id.imgPlayer1:
            intent = new Intent(this, ListHeroes.class);
            startActivityForResult(intent,REQUEST_CODE_PLAYER1);
            break;
        case R.id.imgPlayer2:
            intent = new Intent(this, ListHeroes.class);
            startActivityForResult(intent,REQUEST_CODE_PLAYER2);
            break;
            default:
            break;
    }
}
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
        Intent intent = getIntent();
        switch (requestCode) {
            case REQUEST_CODE_PLAYER1:
                position = intent.getExtras().getInt("position");
                name = intent.getStringArrayExtra("name");
                photo = intent.getIntArrayExtra("photo");
                playerName1.setText(name[position]);
                btnPlayer1.setImageResource(photo[position]);
                break;

            case REQUEST_CODE_PLAYER2:
                position = intent.getExtras().getInt("position");
                name = intent.getStringArrayExtra("name");
                photo = intent.getIntArrayExtra("photo");
                playerName2.setText(name[position]);
                btnPlayer2.setImageResource(photo[position]);
                break;

     }
     } else {
        Toast.makeText(this, "Hero is not selected", 
        Toast.LENGTH_SHORT).show();
    }

   }
   }
列表英雄活动

public class ListHeroes extends Activity {

ListView list;
ListViewAdapter adapter;
String[] name;
int[] photo;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview_main);

name = new String[]{"kamen", "nozhnitsi", "bumaga"};
photo = new int[]{R.drawable.kamen, R.drawable.nozhnitsi, R.drawable.bumaga}

list = (ListView) findViewById(R.id.listview);

    // Pass results to ListViewAdapter Class
    adapter = new ListViewAdapter(this, name, photo);

    // Binds the Adapter to the ListView
    list.setAdapter(adapter);

    // Capture ListView item click
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            Intent intent = new Intent();

            intent.putExtra("name", name);

            intent.putExtra("photo", photo);

            intent.putExtra("position", position);

            setResult(RESULT_OK, intent);
            finish();

        }

    });
  }
}
公共类列表扩展活动{
列表视图列表;
ListViewAdapter适配器;
字符串[]名称;
int[]照片;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_main);
name=新字符串[]{“kamen”、“nozhnitsi”、“bumaga”};
photo=newint[]{R.drawable.kamen,R.drawable.nozhnitsi,R.drawable.bumaga}
list=(ListView)findViewById(R.id.ListView);
//将结果传递给ListViewAdapter类
adapter=新的ListViewAdapter(此、名称、照片);
//将适配器绑定到ListView
list.setAdapter(适配器);
//捕获列表视图项单击
list.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
意图=新意图();
意向。额外(“名称”,名称);
意图。额外(“照片”,照片);
意图。额外(“位置”,位置);
设置结果(结果正常,意图);
完成();
}
});
}
}
将上述代码替换为以下代码

if (resultCode == RESULT_OK) {
        Intent intent = data;
if (resultCode == RESULT_OK) {
        Intent intent = data;