Adapter条目点击,跳转到新的Activity,获取到值之后回显到adapter 条目中的某个控件中去

博客内容介绍了如何在Adapter条目被点击后,启动新的Activity并传递数据。在新Activity中处理数据后,返回并将结果显示回Adapter的特定控件中,解决了界面交互和数据同步的问题。
摘要由CSDN通过智能技术生成

//DEMO 示例   (可以直接复制粘贴验证功能--如有bug或者其他问题,欢迎留言),需要butterknife, recyclerview依赖包

package com.ontime.change;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;
//显示条目的Activity
public class MainActivity extends AppCompatActivity {
    private MyAdapter adapter;
    private RecyclerView rv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rv = (RecyclerView) findViewById(R.id.rv);
        rv.setLayoutManager(new LinearLayoutManager(this));
        adapter = new MyAdapter(this);
        rv.setAdapter(adapter);
        adapter.notifyDataSetChanged();

        adapter.setItemClickListener(new MyAdapter.MyItemClickListener() {
            @Override
            public void onItemClick(View view, int position) {
                Intent intent = new Intent(MainActivity.this,TwoActivity.class);
                intent.putExtra("位置", position);
                startActivityForResult(intent,200);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        Bundle allData = data.getExtras();
        int pos = allData.getInt("位置");
        String price = allData.getString("新价格");

        TextView tv2 = rv.getChildAt(pos).findViewById(R.id.tv2);
        tv2.setText(price);
        adapter.notifyDataSetChanged();
    }
}

//获取需要值的Activity
package com.ontime.change;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;

public class TwoActivity extends AppCompatActivity{

    @InjectView(R.id.oldPrice)
    TextView oldPrice;
    @InjectView(R.id.newPrice)
    EditText newPrice;

    private SharedPreferences sp;
    private String latest;
    private int position;
    private Intent intent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);
        ButterKnife.inject(this);

        sp = getSharedPreferences("价格", MODE_PRIVATE);

        intent = getIntent();
        position = intent.getIntExtra("位置", 0);

        oldPrice.setText(sp.getString("价格" + position, "暂未设置价格"));
    }

    @OnClick({R.id.btn_confirm, R.id.btn_skip})
    public void onViewClicked(View view) {

        switch (view.getId()) {
            case R.id.btn_confirm:
                latest = newPrice.getText().toString().trim();
                if (!TextUtils.isEmpty(latest)) {
                    SharedPreferences.Editor editor = sp.edit();
                    editor.putString("价格" + position, latest);
                    editor.commit();
                    Toast.makeText(this, "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值