У меня есть пользовательский макет ListView
, полученный с веб-сайта.Это позволяет мне щелкнуть элемент из списка и заново заполнить тот же макет новым списком различных элементов на основе элемента, который вы щелкнули.Макет работает отлично, и я получил его, чтобы заполнить информацией, взятой из базы данных.
Проблема, с которой я сталкиваюсь, заключается в том, что вместо того, чтобы он снова заполнял макет новым списком при нажатии, я бы хотел перейти на другой макет.Я попробовал пару вещей, но безуспешно.Вот мой кодЗаранее спасибо за помощь:
public class firstactivity extends ListActivity {
private LayoutInflater mInflater;
private Vector<RowData> data;
RowData rd;
CustomAdapter adapter;
int pos=1;
public int picpos = 0;
LinkedList<String> region = new LinkedList<String>();
String name = null;
String something = null;
private Integer[] imgid = {
R.drawable.icon
};
RelativeLayout layr1;
Animation ar3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
mInflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
data = new Vector<RowData>();
String finaline = "";
//Get info from database
InputStream is = null;
String result = "";
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
//http connection
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2:8888/PhpProject1/index.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//parse json data
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
Log.i("log_tag"," names: "+json_data.getString("name")
);
//Get an output to the screen
finaline = "\n\t" + jArray.getJSONObject(i);
something = finaline.substring(finaline.indexOf(',',10));
name = something.substring(9,finaline.indexOf('\"', 9));
region.add(something);
}
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
//set list with information from database
for(int i=0;i<region.size();i++){
try {
rd = new RowData(i,region.get(i));
} catch (ParseException e) {
e.printStackTrace();
}
data.add(rd);
}
adapter = new CustomAdapter(this, R.layout.second_list,R.id.title, data);
setListAdapter(adapter);
getListView().setTextFilterEnabled(true);
//getListView().setOnItemClickListener(this);
}
/*private OnClickListener SaveListener = new OnClickListener(){
public void onClick(View v){
setContentView(R.layout.newlayout);
}
};*/
/*protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
setContentView(R.layout.newlayout);
//final Intent intent = new Intent();
//startActivityForResult(intent, position);
}*/
public void onListItemClick(ListView parent, View v, int position, long id) {
adapter = (CustomAdapter) parent.getAdapter();
data.removeAllElements();
//String insert_list;
////
//if(position==0) {
/*setContentView(R.layout.newlayout);
TextView textView1 = (TextView) findViewById(R.id.textView1);
textView1.setText((String)region.get(0));*/
//setListAdapter(adapter);
//getListView().setTextFilterEnabled(true);
if(position == 0)
setContentView(R.layout.newlayout);
}
private class RowData {
protected int mId;
protected String mTitle;
RowData(int id,String title){
mId=id;
mTitle = title;
}
@Override
public String toString() {
return mId+" "+mTitle;
}
}
private class CustomAdapter extends ArrayAdapter<RowData> {
public CustomAdapter(Context context, int resource,
int textViewResourceId, List<RowData> objects) {
super(context, resource, textViewResourceId, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
TextView title = null;
TextView detail = null;
ImageView i11=null;
RowData rowData= getItem(position);
if(null == convertView){
convertView = mInflater.inflate(R.layout.second_list, null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
title = holder.gettitle();
title.setText(rowData.mTitle);
i11=holder.getImage();
i11.setImageResource(imgid[0]);
return convertView;
}
private class ViewHolder {
private View mRow;
private TextView title = null;
private TextView detail = null;
private ImageView i11=null;
public ViewHolder(View row) {
mRow = row;
}
public TextView gettitle() {
if(null == title){
title = (TextView) mRow.findViewById(R.id.title);
}
return title;
}
public ImageView getImage() {
if(null == i11){
i11 = (ImageView) mRow.findViewById(R.id.img);
}
return i11;
}
}
}
}