0
나는 안드로이드 애플 리케이션을 개발하는 것으로 시작하고 있습니다. 텍스트를 추가 할 수있는 대화 상자를 만들었습니다. 확인을 클릭하면 onResume() 또는 이와 유사한 것으로부터 활동이 시작될 것으로 예상됩니다. 대화 상자에서 확인을 클릭하면 ListView를 업데이트하고 싶습니다.업데이트 목록보기 대화 상자를 채운 후
UPDATE
MainActivity :
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.server_list);
}
@Override
protected void onResume() {
super.onResume();
//database query and call showServerList
}
public void showServerList(ArrayList<HashMap<String, String>> servers){
ListView list = (ListView) findViewById(R.id.server_list);
ListAdapter adapter = new SimpleAdapter(MainActivity.this, servers, R.layout.server_list_entry,
new String[] {"name"}, new int[]{R.id.server_name});
list.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_add_server:
DialogFragment newFragment = new AddServerDialog();
newFragment.show(getSupportFragmentManager(), "addServer");
return true;
default:
return super.onOptionsItemSelected(item);
}
}
AddServerDialog :
public class AddServerDialog extends DialogFragment {
View view;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
view = inflater.inflate(R.layout.dialog_add_server, null);
builder.setView(view)
.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
EditText name = (EditText) view.findViewById(R.id.add_server_name);
EditText url = (EditText) view.findViewById(R.id.add_server_address);
if(name.getText().toString().isEmpty() || url.getText().toString().isEmpty()){
getDialog().cancel();
}else{
HashMap<String,String> map = new HashMap<String,String>();
map.put("name", name.getText().toString());
map.put("url", url.getText().toString());
//Database query with insert
}
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
getDialog().cancel();
}
});
return builder.create();
}
}
추가 코드가, 또는에 사용을 시도 할 수 있습니다하시기 바랍니다 listView에 데이터를 설정 한 메소드를 호출하고 listView에 대한 어댑터의 notifyDataSetChanged() 메소드를 호출하십시오. –
네, 여기 있습니다. 어쩌면 모두 잘못 됐을 수도 있습니다. 안드로이드로 3 번째 날입니다. –
죄송합니다, 지금 작동합니다. 나는 긴장을 풀 시간이 필요했다. –