gpt4 book ai didi

android - 在android中将多个 Intent 从一个 Activity 发送到另一个 Activity

转载 作者:行者123 更新时间:2023-11-30 03:08:00 25 4
gpt4 key购买 nike

我正在开发一个学生时间表 android 应用程序项目,我应该在其中为特定时间段的特定日期的特定类(class)设置闹钟。例如。操作系统是星期一上午 11 点,然后应在几分钟前设置警报。为此,我需要将 3 个 Intent 从一个 Activity 发送到另一个 Activity 以发送日期、时间段和主题名称。我在使用以下代码 fragment 时遇到了一些问题试图发送 Intent 。

for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {


String subject = c.getString(c.getColumnIndex("subject"));
String day = c.getString(c.getColumnIndex("day"));

String slot1 = c.getString(c.getColumnIndex("7:30-9:10AM"));
String slot2 = c.getString(c.getColumnIndex("9:20-11:00AM"));
String slot3 = c.getString(c.getColumnIndex("11:10-12:50PM"));
String slot4 = c.getString(c.getColumnIndex("1:40-3:20PM"));
String slot5 = c.getString(c.getColumnIndex("3:30-5:00PM"));

TableRow tr1=new TableRow(viewtimetable.this);

tr1.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));

TextView b=new TextView(viewtimetable.this);

b.setText(day);
b.setTextColor(Color.RED);
b.setTextSize(15);
tr1.addView(b);


TextView b1=new TextView(viewtimetable.this);
TextView b2=new TextView(viewtimetable.this);
TextView b3=new TextView(viewtimetable.this);
TextView b4=new TextView(viewtimetable.this);
TextView b5=new TextView(viewtimetable.this);


b1.setPadding(10, 0, 0, 0);
b1.setTextSize(15);
b1.setTextColor(Color.RED);


b2.setPadding(10, 0, 0, 0);
b2.setTextColor(Color.RED);
b2.setTextSize(15);


b3.setPadding(10, 0, 0, 0);
b3.setTextColor(Color.RED);
b3.setTextSize(15);


b4.setPadding(10, 0, 0, 0);
b4.setTextColor(Color.RED);
b4.setTextSize(15);


b5.setPadding(10, 0, 0, 0);
b5.setTextColor(Color.RED);
b5.setTextSize(15);


if(day.equals("Friday"))
{

if(slot1 != null){
b1.setText(slot1);
//Here's the main scene.I only want to send the intent if the above condition satisfies.
Intent intent = new Intent(getApplicationContext(),AlarmActivity.class);
intent.putExtra("Day",day);
intent.putExtra("Subject",subject);

startActivity(intent);
}
if(slot2 != null)
{
b2.setText(slot2);
}
if(slot3 != null)
{
b3.setText(slot3);
}
if(slot4 != null)
{
b4.setText(slot4);
}
if(slot5 != null)
{
b5.setText(slot5);
}

}

else if(day.equals("Monday"))
{
if(slot1 != null){
b1.setText(slot1);
}
if(slot2 != null)
{
b2.setText(slot2);
}
if(slot3 != null)
{
b3.setText(slot3);
}
if(slot4 != null)
{
b4.setText(slot4);
}
if(slot5 != null)
{
b5.setText(slot5);
}

}



else if(day.equals("Tuesday"))
{

if(slot1 != null){
b1.setText(slot1);
}
if(slot2 != null)
{
b2.setText(slot2);
}
if(slot3 != null)
{
b3.setText(slot3);
}
if(slot4 != null)
{
b4.setText(slot4);
}
if(slot5 != null)
{
b5.setText(slot5);
}

}


else if(day.equals("Wednesday"))
{

if(slot1 != null){
b1.setText(slot1);
}
if(slot2 != null)
{
b2.setText(slot2);
}
if(slot3 != null)
{
b3.setText(slot3);
}
if(slot4 != null)
{
b4.setText(slot4);
}
if(slot5 != null)
{
b5.setText(slot5);
}

}


else if(day.equals("Thursday"))
{

if(slot1 != null){
b1.setText(slot1);
}
if(slot2 != null)
{
b2.setText(slot2);
}
if(slot3 != null)
{
b3.setText(slot3);
}
if(slot4 != null)
{
b4.setText(slot4);
}
if(slot5 != null)
{
b5.setText(slot5);
}

}



else if(day.equals("Saturday"))
{

if(slot1 != null){
b1.setText(slot1);
}
if(slot2 != null)
{
b2.setText(slot2);
}
if(slot3 != null)
{
b3.setText(slot3);
}
if(slot4 != null)
{
b4.setText(slot4);
}
if(slot5 != null)
{
b5.setText(slot5);
}

}

tr1.addView(b1);
tr1.addView(b2);
tr1.addView(b3);
tr1.addView(b4);
tr1.addView(b5);
tv.addView(tr1);

问题

如果我像上面那样,它生成的异常是

couldn't read row 0,col -1 from CursowWindow.Make sure the cursor is initialized correctly before accessing data from it.

问题

我应该在代码 fragment 中修改什么,以便我可以将 Intent 发送到 AlarmReceiver.class Activity 并可以在那里使用

String day =  getIntent().getExtras().getString("Day");
String subject = getIntent().getExtras().getString("Subject");

附言

我也尝试使用 SharedPreferences 但抛出了同样的异常。

解决方案

这很愚蠢,但在我的查询中,我没有投影我在代码中使用的数据库列。因此出现异常。

最佳答案

您的异常是由于某些(可能不止一个)调用造成的:

c.getColumnIndex(columnName)

如果没有名为 columnName 的列,这些方法将返回 -1。因此,c.getString(-1) 引发异常,因为 -1 不是有效列。确保这些列名称确实存在于您的数据库/ContentProvider 中以及查询期间的投影中。

关于android - 在android中将多个 Intent 从一个 Activity 发送到另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21460174/

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