如何在android中的活动之间传递自定义对象?我知道捆绑包但我似乎无法在其中看到任何功能.有人能告诉我一个很好的例子吗?
我有3个按钮.按钮A,B和C.按钮A位于Fragment中.它开始意图(活动).在新活动按钮B和C驻留.按钮B表示"新",按钮C表示"确定".
我想要做的是点击按钮B("新")之后意图应该按住该按钮,直到用户点击按钮C("OK"),其中活动应该自行销毁并返回到现在有一个新按钮的片段叫("新").
有什么简单的方法可以做到这一点?如果我希望应用程序记住新创建的按钮,以便在onDestroy上不丢失,我应该用sqlite保存吗?
我不是很熟悉Android,所以希望有人可以用外行术语来表达或者说一个例子.
当一个Activity调用另一个Activity时,我想将一个类对象从一个Activity传递给另一个.我试图用Intent.putExtra(name, value)它制作,但后来我没有Intent.getExtra(name)方法.有许多类似的方法getStringExtra(name),getDataExtra(name)依此类推,但我在其中放入的值putExtra是一个类对象,它具有很多不同的值,如String,Data和int.如何通过该课程?
我在使用Intent导航屏幕时遇到问题.我想发送一个变量并在其他类中使用它.
我正在使用一个方法,该方法接受变量,但我不知道如何将其与意图发送到新屏幕,这将使用它来做一些事情.
主类调用metod:
private void pantallaDetalles(final int identificador)
{
startActivityForResult(new Intent(this,MostrarDetalles.class),REQST_CODE);
}
Run Code Online (Sandbox Code Playgroud)
MostrarDetalles.class是*.java,它将获取变量.我这样开头:
public class MostrarDetalles extends Activity {
SQLiteDatabase db;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.detalles);
//more code...
Cursor c = db.rawQuery("SELECT * FROM table WHERE _id="+ identificador, null);
}
Run Code Online (Sandbox Code Playgroud)
你看到吗?我在说这个.我不知道如何通过Intent将"identify"变量从主类发送到第二类.
你能帮帮我吗?非常感谢你的建议.
JMasia.
我有这个纸牌游戏,我将所有玩家存储在一个List.为了找出我想与谁一起行动的玩家,每个玩家都有一个Card(我可以得到卡片名称),a name(我可以得到玩家的名字),但每个玩家都有一个独特的ID.
现在,在我的onCreate()方法开始时,我找到并将列表的播放器分配给播放器Player clairvoyant:
public void initializeCharacters() {
for (Player player : players) {
if (player.getCardName().equals("Clairvoyant")) {
clairvoyant = player;
}
}
Run Code Online (Sandbox Code Playgroud)
游戏在夜晚和白天之间切换.透视力的转折是在夜间,我用一个开关来确定何时轮到谁.
现在,在开始千里眼之前,我会检查他是否还活着,在否定的情况下,我只是跳过他的回合:
case 2:
clairvoyant(); // Clairvoyant's turn
Toast.makeText(Game.this, String.valueOf(clairvoyant.getLifeStatus()), Toast.LENGTH_SHORT).show();
if(clairvoyant.getLifeStatus()) {
/* --- Let him choose ---*/
Intent intent = new Intent(this, ListPlayersClairvoyant.class);
Bundle bundle = new Bundle();
bundle.putSerializable("PLAYERS", (Serializable) players);
intent.putExtras(bundle);
startActivityForResult(intent, REQUEST_CLAIRVOYANT);
/* --------------------- */
}
nightInsideCounter++;
if(medium == null) {
nightInsideCounter++;
} …Run Code Online (Sandbox Code Playgroud) 我在Dagger 2中有与范围相关的错误,我试图理解如何解决它.
我有一个CompaniesActivity显示公司.当用户选择项目时,将显示所选公司的员工EmployeesActivity.当用户选择员工时,她的详细信息显示在EmployeeDetailActivity.
class Company {
List<Employee> employees;
}
Run Code Online (Sandbox Code Playgroud)
类CompaniesViewModel包含公司和选定的公司(或null):
class CompaniesViewModel {
List<Company> companies;
Company selected;
}
Run Code Online (Sandbox Code Playgroud)
CompaniesActivity提到CompaniesViewModel:
class CompaniesActivity extends Activity {
@Inject
CompaniesViewModel viewModel;
@Override
protected void onCreate(Bundle b) {
//more stuff
getComponent().inject(this);
showCompanies(viewModel.companies);
}
//more stuff
private onCompanySelected(Company company) {
viewModel.selected = company;
startActivity(new Intent(this, EmployeesActivity.class));
}
}
Run Code Online (Sandbox Code Playgroud)
类EmployeesViewModel包含员工和选定的员工(或null):
class EmployeesViewModel {
List<Employee> employees;
Employee selected;
}
Run Code Online (Sandbox Code Playgroud)
EmployeesActivity提到 …
我试图通过Intent.putExtras这样的方式将数据从一个活动传递到另一个活动:
private ArrayList<HashMap<String, String>> mGroups = new ArrayList<HashMap<String, String>>();
private ArrayList<HashMap<String, String>> mUsers = new ArrayList<HashMap<String, String>>();
...
Bundle data = new Bundle();
data.putInt("mode", mode);
data.putSerializable("groups", (Serializable) mGroups);
data.putSerializable("users", (Serializable) mUsers);
data.putInt("current_class", mCurrentClassId);
data.putInt("current_user", mCurrentUserId);
Intent intent = new Intent(ctx, ChildActivity.class);
intent.putExtras(data);
ctx.startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud)
这mUsers是一个HashMap<String,String>包含用户数据的列表,包括Base64编码的照片,此列表中的字符串大小总和约为500Kb
startActivityForResult用黑屏调用挂起几分钟然后我得到ANR错误.onCreate根本没有调用子活动.
如果我不在mUsers中添加大字符串(没有Base64编码的照片) - 工作得很好.
请帮忙.
我想将一个自定义Object从一个活动传递给另一个活动,Object包含一个String和一个另一个自定义Object的List,它包含一个字符串数组和一个int数组.我已经阅读了 /sf/answers/149881651/,但后来我找到了这个答案/sf/answers/548959141/.使用Bundle或Parcelable哪个更好?有什么不同?我什么时候应该使用它?
谢谢你的回复,
丹
我需要inString在其他课程中获得变量.我怎样才能做到这一点?
public class main {
public static StringBuffer inString;
public static void main(String[] args) {
inString = new StringBuffer("Our aim is to make a 15 realistic game, where grinding powerlines and doing a tailwhip isn't easy, like in the real world. A game in which you will feel like you're actual riding. A game in which creativity and beauty are combined. ");
inString = new StringBuffer(inString.toString().replaceAll(" +", " "));
}
}
Run Code Online (Sandbox Code Playgroud)
所以我尝试System.out.println(main.inString);在我的Textcl.class中使用,但得到null.