嗨,谢谢你看看这个新问题。
我找到了任何与我的问题相关的答案,似乎无法找到我所拥有的问题,或者我需要有人来解释我做错了什么。
无论如何我的问题是我正在尝试学习Intents并在活动putExtra,getExtra等之间传递数据..所以我创建了一个非常简单的应用程序,其功能只是将选定的日期从日期选择器传递到新活动并将其显示在屏幕上。 当我点击按钮开始下一个活动时,我必须做错了,因为我得到了“android.content.res.Resources $ NotFoundException”我尝试了其他已回答问题的不同代码,但无济于事,是否有什么东西丢失了?。 对于任何答案,我的代码都在下面,并且第二次给大家。
第一项活动
package date.Picker;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
public class DatePickerActivity extends Activity {
int year;
int month;
int day;
Button selectButton;
DatePicker datePicker;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
datePicker = (DatePicker) findViewById(R.id.datePicker);
selectButton = (Button) findViewById(R.id.selectButton);
selectButton.setOnClickListener(new OnClickListener()
{
public void onClick(View v){
Intent intent = new Intent(getApplicationContext(), datePickerResult.class);
month = datePicker.getMonth();
day = datePicker.getDayOfMonth();
year = datePicker.getYear();
intent.putExtra("year",year);
intent.putExtra("month",month);
intent.putExtra("day",day);
startActivity(intent);
}
});
}
}
第二项活动
package date.Picker;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class datePickerResult extends Activity {
int year;
int month;
int day;
TextView textView1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dpresult);
textView1 = (TextView)findViewById(R.id.textView1);
Bundle extras = getIntent().getExtras();
extras.getBundle("year");
extras.getBundle("day");
extras.getBundle("month");
textView1.setText(year);
}
}
所以,谢谢你的任何答案或帮助。对不起,如果有点浪费时间。
答案 0 :(得分:1)
弹出的第一件事就是你打电话:
textView1.setText(year);
编译器将int year
视为资源ID,因此它会尝试查找具有该资源ID的资源。既然它不能,就放弃了。请尝试以下两行之一:
textView1.setText(year+"");
textView1.setText(Integer.valueOf(year));
接下来,您没有分配以下内容的返回值:
extras.getBundle("year");
extras.getBundle("day");
extras.getBundle("month");
您需要做的是选择额外的,并将其分配给变量。像这样:
year = extras.getInt("year");
day = extras.getInt("day");
month = extras.getInt("month");
这应该正确地从Bundle
Intent
获取年/日/月值。