gpt4 book ai didi

android - 如何从 OnActivityResult 更新 RecyclerView 元素

转载 作者:行者123 更新时间:2023-11-29 15:42:54 24 4
gpt4 key购买 nike

我要让 NAME 和 EMAIL 等于第一个 Activity 中来自其他 Activity 的数据。当我在 onActivityResult 中使用 NAME 和 EMAIL 作为 toast 时,它显示了结果,但除了这种方法之外它不起作用,我将 NAME 和 EMAIL 设为全局变量。

public class startActivity extends ActionBarActivity {


String sell="sell";
Toolbar mToolbar;
//////drawable navbar
LinearLayout mystore;
int REQUEST_CODE=10110;
private static ViewPager mPager;
private static int currentPage = 0;
private static int NUM_PAGES = 0;
LinearLayout buysell;



int PROFILE = R.drawable.sellit;

private Toolbar toolbar;
// Declaring the Toolbar Object

RecyclerView mRecyclerView; // Declaring
RecyclerView.Adapter mAdapter; // Declaring Adapter
RecyclerView.LayoutManager mLayoutManager; // Declaring Layout
DrawerLayout Drawer; // Declaring

ActionBarDrawerToggle mDrawerToggle;
/////
String name,mail;
String NAME;
String EMAIL;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);


mystore=(LinearLayout)findViewById(R.id.mystore);
mystore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(startActivity.this,MybookStore.class));
}
});
//toolbar
init();

buysell=(LinearLayout)findViewById(R.id.buysell);
buysell.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(startActivity.this,buySecond.class));
}
});

mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);

getSupportActionBar().setTitle("MybookStore");




mRecyclerView = (RecyclerView) findViewById(R.id.RecyclerView);

mRecyclerView.setHasFixedSize(true);

mAdapter = new MyAdapter(TITLES,ICONS,NAME,EMAIL,PROFILE);

// And passing the titles,icons,header view name, header view email,
// and header view profile picture

mRecyclerView.setAdapter(mAdapter);
// Setting the adapter to RecyclerView
//RecyclerItemClickListener//
mLayoutManager = new LinearLayoutManager(this);
// Creating a layout Manager

mRecyclerView.setLayoutManager(mLayoutManager);
// Setting the layout Manager

mRecyclerView.addOnItemTouchListener(
new RecyclerItemClickListener(startActivity.this, new
RecyclerItemClickListener.OnItemClickListener() {
@Override public void onItemClick(View view, int position) {
switch(position){
case 1:
startActivity(new
Intent(startActivity.this,publishNewBook.class));
}
}
})
);


Drawer = (DrawerLayout) findViewById(R.id.DrawerLayout);
// Drawer object Assigned to the view
mDrawerToggle = new
ActionBar
DrawerToggle(this,Drawer,toolbar,R.string.drawer_open,R.string.drawer_c
lose){

@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
// code here will execute once the drawer is opened( As I dont
want anything happened whe drawer is
// open I am not going to put anything here)
}

@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
// Code here will execute once drawer is closed
}



}; // Drawer Toggle Object Made
Drawer.setDrawerListener(mDrawerToggle); // Drawer Listener set to the
Drawer toggle
// Finally we set the drawer toggle sync State
mDrawerToggle.syncState();


}




public void login(View view){
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setMessage("Please Login To Publish Book ");
builder.setCancelable(false);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {
Intent i=new Intent(startActivity.this, userLogin.class);
startActivityForResult(i,REQUEST_CODE);
// startActivity(new Intent(startActivity.this, userLogin.class));
}
});
builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alertDialog=builder.create();
alertDialog.show();

//startActivity(new Intent(startActivity.this,userLogin.class));

}

protected void onActivityResult(int requestCode, int resultCode, Intent
data) {
super.onActivityResult(requestCode, resultCode, data);

if(requestCode==REQUEST_CODE){
if (resultCode ==110) {
NAME=new String(data.getStringExtra("name1"));
EMAIL=new String(data.getStringExtra("mail2"));
Toast.makeText(getApplicationContext(), "Name " + NAME+" and mailId
"+EMAIL+" get", Toast.LENGTH_LONG).show();

// mAdapter = new MyAdapter(TITLES,ICONS,NAME1,EMAIL1,PROFILE);

}
}
}

最佳答案

这样做

   //make a function updateAdapter() inside your adapter
public void updateAdapter(/* gets params like TITLES,ICONS,NAME,EMAIL,PROFILE*/){

// update adapter element like NAME, EMAIL e.t.c. here

// then in order to refresh the views notify the RecyclerView
notifyDataSetChanged();
}

然后像这样修改OnActivityResult方法

   protected void onActivityResult(int requestCode, int resultCode, Intent 
data) {
super.onActivityResult(requestCode, resultCode, data);

if(requestCode==REQUEST_CODE){
if (resultCode == RESULT_OK) {
NAME=new String(data.getStringExtra("name1"));
EMAIL=new String(data.getStringExtra("mail2"));
Toast.makeText(getApplicationContext(), "Name " + NAME+" and mailId
"+EMAIL+" get", Toast.LENGTH_LONG).show();

//do this
mAdapter.updateAdapter(TITLES,ICONS,NAME,EMAIL,PROFILE);

}
}

关于android - 如何从 OnActivityResult 更新 RecyclerView 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37632957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com