다른 활동의 자식 Today
에 ExpandableListView
에 항목을 추가하고 싶습니다. 나는 그것이 LocHistory
이름 추가 할 활동은 여기 목록에 무언가를 추가하는 코드입니다 :다른 활동의 항목을 ExpandableListView에 추가
static void addListData(final Context context) {
List<NewsItem> list = listDataChild.get("Today");
NewsItem newsData = new NewsItem();
newsData = new NewsItem();
newsData.setHeadline("11.11111, 1.1111");
newsData.setSpeed("1.11KM/H");
newsData.setDirection("111");
newsData.setDate("11-1-1111 11:11:11");
list.add(0, newsData);
listDataChild.put("Today", list);
}
내가 같은 클래스 (LocHistory
)에서 함수를 호출 할 때이 노력하고 있습니다. 나는이 같은 MainActivity
에 전화 때 :
public class MainActivity extends Activity {
Button button2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button2 = (Button) this.findViewById(R.id.button2);
button2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
LocHistory.addListData(getBaseContext());
}
});
}
}
을 다음 목록에 추가 아무것도 없다. 다른 활동의 항목을 ExpandableListView
에 추가 할 수 있습니까? 나는 무언가가 있다면 클래스 LocHistory
가 열리지 않을 것이라는 점을 알고 싶습니다. 의도적으로 여기에있는 startActivity
이 옵션이 아니라고 생각합니다 (하지만 확실하지 않습니다).
는 (자바 소스는 여기에서 찾을 수 있습니다 : MainActivity.java, LocHistory.java, NewsItem.java 및 ExpandableListAdapter.java)
편집하십시오 다른 포럼에 어떤 사람으로
지적, 나는 지금은 SharedPreferences
을 사용 중입니다.
static void addListData (int TimeStamp, final String lat, final String lng, final String speed,
final String direction, final Context context){
int todaystamp = startOf("today");
int yesterdaystamp = startOf("yesterday");
String Datetime = DateFormat.format("dd-MM-yyyy kk:mm:ss", new Date(TimeStamp * 1000L)).toString();
SharedPreferences pref = context.getSharedPreferences("myPrefs", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
if (TimeStamp >= todaystamp) {
editor.putString("Today", "*headline=" + lat + ", " + lng + ";speed=" + speed + ";direction=" + direction + ";date=" + Datetime + ";");
} else if (TimeStamp >= yesterdaystamp) {
editor.putString("Yesterday", "*headline=" + lat + ", " + lng + ";speed=" + speed + ";direction=" + direction + ";date=" + Datetime + ";");
} else if (TimeStamp < yesterdaystamp) {
editor.putString("Older", "*headline=" + lat + ", " + lng + ";speed=" + speed + ";direction=" + direction + ";date=" + Datetime + ";");
}
editor.commit();
}
을하지만 그것은 이전 데이터를 덮어 쓰게됩니다 같은 키에 SharedPreferences
에 항목을 추가 할 때 지금은 하나 개의 문제에 붙어 :이 코드를 사용하고 있습니다. 이전 데이터를 덮어 쓰지 않고 동일한 키에 데이터를 추가하려면 어떻게합니까? 처음에는 데이터를 가져온 다음 SharedPreferences
에 데이터를 추가 한 후에 데이터에 항목을 추가 할 수 있습니까?
'list' 또는'listDataChild'에 새 항목이 표시되지 않습니까? 또는 어댑터에서 새 항목이 보이지 않습니까? – Luksprog
@Luksprog 'Today'라는 하위의 목록에는 표시되지 않습니다 (어댑터라고 생각합니까?). 하지만'Today' 아래 목록에 추가 된'addListData' 함수에서'listDataChild'를 로그하는 것 같습니다 (로깅은'LocHistory' 클래스를 처음 열었을 때만 작동합니다). – user1480019
나는 아직도 당신이하려는 것을 얻지 못하고 어떻게 현재의 구현을 테스트 했는가? 'MainActivity' 또는'LocHistory' 클래스로부터 그 메소드를 호출하는 것은 아무런 문제없이 작동 할 것입니다. 성공적인 NewsItem이'Today' 키 밑의리스트에 추가됩니다. 해당 메소드가 끝날 때지도를 인쇄하면 새 항목이 표시됩니다. 'LocHistory' 액티비티가 실행될 때만 맵과리스트를 초기화한다는 것을 명심하십시오. – Luksprog