我对编程很新,只是一个周末的爱好。我想创建一个类似于交互式日历的应用程序,基本上就像这样......
主活动会显示一个日历,您可以在该日历中点按日期,然后将启动新的活动。在此新活动中,您可以为项目选择一个类别,并在选择类别时将ImageButton添加到日历日期。放置按钮后,您可以点击它并设置额外信息(警报,地点,详细信息等)
我已经做了所有的日历布局,按钮到不同的活动和动态添加日历日期ImageButton,但我已经走到了死胡同的方式如何 保存用户添加的数据(ImageButton); '在activityB中单击button1(例如运动日期)在activityA(日历)中创建棒球的动态图像按钮 布局,所以我的问题是如何永久保存这些数据(可以被用户删除)。
我花了最近几天阅读Onpause,onSaveinstancestate,onConfiguration,SQL,片段和数据库。但是我无法对如何应用它做出正面或反面,更不用说将它应用于从另一个活动创建的活动对象,我非常感谢任何见解。
使用创建动态按钮的按钮的活动代码:
package org.iimed.www;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import org.iimed.www.Sundayopen;
import android.widget.RelativeLayout;
import android.widget.TableLayout.LayoutParams;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
public class Penicillins extends Activity implements OnClickListener {
ImageButton addmed,ab;
RelativeLayout ll;
public void onCreate(Bundle SavedInstanceState){
super.onCreate(SavedInstanceState);
setContentView(R.layout.penicillin);
addmed =( ImageButton)findViewById(R.id.addmed);
addmed.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()){
case R.id.addmed:
setContentView(R.layout.sundayopen);
ll =(RelativeLayout) findViewById(R.id.sundayopen);
android.widget.LinearLayout.LayoutParams b = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
int i = 0;
ab = new ImageButton(this);
ab.setImageResource(R.drawable.adaba);
ab.setBackgroundColor(Color.TRANSPARENT);
ab.setLayoutParams(b);
ab.setId(i) ;
ab.getId();
ab.setTag(1);
ll.addView(ab);
}
}
}
My code for the activity the button appears in:
package org.iimed.www;
import java.util.ArrayList;
import android.R.string;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.view.View.OnClickListener;
public class Sundayopen extends Activity implements OnClickListener {
public static final Integer [] aba = {R.id.aba};
ImageButton ab;
public void onCreate(Bundle SavedInstanceState) {
super.onCreate(SavedInstanceState);
setContentView(R.layout.sundayopen);
ImageButton hb1 = (ImageButton) findViewById(R.id.homebutton1);
RelativeLayout ll =(RelativeLayout) findViewById(R.id.sundayopen);
ImageButton sbc = (ImageButton) findViewById(R.id.satlidopen);
ImageButton abb = (ImageButton) findViewById(R.id.abbutton);
sbc.setOnClickListener(this);
hb1.setOnClickListener(this);
abb.setOnClickListener(this);
}
public void onClick(View v){
switch (v.getId()) {
case R.id.homebutton1:
startActivity(new Intent(this, MainActivity.class));
break;
case R.id.satlidopen:
MediaPlayer media = MediaPlayer.create(Sundayopen.this, R.raw.openlid);
media.start();
startActivity(new Intent(this,Iimedja.class));
break;
case R.id.abbutton:
startActivity(new Intent(this, ImageTextListViewActivity.class));
}
}
}
答案 0 :(得分:1)
我相信你在这里提出两件不同的事情:
Activities
之间传递数据(以及如何恢复活动)对于第一个,有几个例子。点击此处this answer。在我看来,你一直在阅读有关恢复Activities
的内容并不是你想做的事情(至少现在还没有)。当Android需要释放内存时,它会导致Activities
被删除,一个好的应用程序会将Activity
的当前状态保存在onSaveInstanceState()
上(即,它会保存它想要恢复的数据)活动在Bundle
中再次启动。查看Android Developer网站。
关于第二个,您需要将数据保存在设备存储器(SQLite
,文件系统或SharedPreferences
)中。所以基本上你应该保存你想恢复的数据,你的解释应该是一组:
如果我是你,我会创建一个SQLite
数据库,其中包含一个Table
,其中包含您要保存的Columns
。将新项目添加到日历时保存数据,并在应用程序启动时加载所有项目数据。