2011-10-17 3 views
1

3 가지 클래스로 앱을 구분했습니다. 사용자가 사용할 기능을 선택할 수있는 기본 클래스 지도 기능은 정상적으로 작동하지만 내 길 찾기 기능은 사용자가 버튼을 클릭 할 때 강제로 닫히지 않으면 레이아웃과 관련이 있다고 생각합니다.새로운 의도가 강제 종료를 만듭니다.

메인 클래스

package com.sammy.umass; 

import android.app.Activity; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
import android.content.Intent; 
import android.widget.Button; 



public class UMassGuide extends Activity { 
/** Called when the activity is first created. */ 



//buttons 
private Button goHereButton; 
private Button mapButton; 
private Button spireButton; 
private Button sparkButton; 
private Button websiteButton; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    goHereButton = (Button) findViewById(R.id.button1); 
    goHereButton.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View arg0) 
     { 
     Intent i = new Intent(UMassGuide.this, DirectionsScreenActivity.class); 
     startActivity(i); 
     } 
    }); 

    mapButton = (Button) findViewById(R.id.button2); 
    mapButton.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View arg0) 
     { 
     Intent i = new Intent(UMassGuide.this, UmassMap.class); 
     startActivity(i); 
     } 
    }); 

    spireButton = (Button) findViewById(R.id.button3); 
    spireButton.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View arg0) 
     { 
      Uri uri = Uri.parse("https://spire.umass.edu/psp/heproda/EMPLOYEE/HRMS/?cmd=login&languageCd=ENG&"); 
      Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 
     } 
    }); 

    sparkButton = (Button) findViewById(R.id.button4); 
    sparkButton.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View arg0) 
     { 
      Uri uri = Uri.parse("https://spark.oit.umass.edu/webct/logonDisplay.dowebct"); 
      Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 
     } 
    }); 

    websiteButton = (Button) findViewById(R.id.button5); 
    websiteButton.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View arg0) 
     { 
      Uri uri = Uri.parse("http://www.umass.edu/"); 
      Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 
     } 
    }); 




} 
} 

방향이 파일 파일은

package com.sammy.umass; 

import android.app.ExpandableListActivity; 
import android.os.Bundle; 
import android.view.ContextMenu; 
import android.view.Gravity; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.ContextMenu.ContextMenuInfo; 
import android.widget.AbsListView; 
import android.widget.BaseExpandableListAdapter; 
import android.widget.ExpandableListAdapter; 
import android.widget.ExpandableListView; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.ExpandableListView.ExpandableListContextMenuInfo; 


public class DirectionsScreenActivity extends ExpandableListActivity { 
ExpandableListAdapter mAdapter; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Set up our adapter 
    mAdapter = new MyExpandableListAdapter(); 
    setListAdapter(mAdapter); 
    registerForContextMenu(getExpandableListView()); 
} 

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
    menu.setHeaderTitle("Sample menu"); 
    menu.add(0, 0, 0, R.string.expandable_list_sample_action); 
} 

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item.getMenuInfo(); 

    String title = ((TextView) info.targetView).getText().toString(); 

    int type = ExpandableListView.getPackedPositionType(info.packedPosition); 
    if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { 
     int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); 
     int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition); 
     Toast.makeText(this, title + ": Child " + childPos + " clicked in group " + groupPos, 
       Toast.LENGTH_SHORT).show(); 
     return true; 
    } else if (type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { 
     int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); 
     Toast.makeText(this, title + ": Group " + groupPos + " clicked", Toast.LENGTH_SHORT).show(); 
     return true; 
    } 

    return false; 
} 

/** 
* A simple adapter which maintains an ArrayList of photo resource Ids. 
* Each photo is displayed as an image. This adapter supports clearing the 
* list of photos and adding a new photo. 
* 
*/ 
public class MyExpandableListAdapter extends BaseExpandableListAdapter { 
    // Sample data set. children[i] contains the children (String[]) for groups[i]. 
    private String[] groups = { " Academic Buildings", " Residential Buildings", " Dining Commons", " All Buildings A-Z" }; 
    private String[][] children = { 
      { "Agricultural Engineering Bldg", "Army ROTC Bldg", "Arnold House", "(Studio) Arts Building" }, 
      { "Baker Hall", "Brett Hall", "Brooks Hall", "Brown Hall" }, 
      { "Berkshire", "Franklin","Hampden","Hampshire","Worcester" }, 
      { "Agricultural Engineering Bldg", "Army ROTC Bldg", "Arnold House", "(Studio) Arts Building" } 
    }; 

    public Object getChild(int groupPosition, int childPosition) { 
     return children[groupPosition][childPosition]; 
    } 

    public long getChildId(int groupPosition, int childPosition) { 
     return childPosition; 
    } 

    public int getChildrenCount(int groupPosition) { 
     return children[groupPosition].length; 
    } 

    public TextView getGenericView() { 
     // Layout parameters for the ExpandableListView 
     AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
       ViewGroup.LayoutParams.MATCH_PARENT, 64); 

     TextView textView = new TextView(DirectionsScreenActivity.this); 
     textView.setLayoutParams(lp); 
     // Center the text vertically 
     textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); 
     // Set the text starting position 
     textView.setPadding(36, 0, 0, 0); 
     return textView; 
    } 

    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, 
      View convertView, ViewGroup parent) { 
     TextView textView = getGenericView(); 
     textView.setText(getChild(groupPosition, childPosition).toString()); 
     return textView; 
    } 

    public Object getGroup(int groupPosition) { 
     return groups[groupPosition]; 
    } 

    public int getGroupCount() { 
     return groups.length; 
    } 

    public long getGroupId(int groupPosition) { 
     return groupPosition; 
    } 

    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, 
      ViewGroup parent) { 
     TextView textView = getGenericView(); 
     textView.setText(getGroup(groupPosition).toString()); 
     return textView; 
    } 

    public boolean isChildSelectable(int groupPosition, int childPosition) { 
     return true; 
    } 

    public boolean hasStableIds() { 
     return true; 
    } 

} 
} 
+0

예외 로그를 ​​게시하십시오. – Jack

+0

어떻게하면됩니까? 감사! 이클립스 btw 사용하여 메신저! –

+0

일식에는 logcat가 있습니다. 창을 사용하는 경우 Window-> Showview-> Logcat에서 logcat을 찾을 수 있습니다. 오류 라인이있을 것입니다. 스택 추적으로 게시 할 필요가있는 것입니다. – blessenm

답변

9

당신이 당신의 매니페스트 파일에 DirectionScreenActivity을 추가 한 (강제 닫기는이 클래스가 열릴 때 발생)? 그렇지 않으면 치명적인 충돌이 발생할 수 있습니다.

+0

그게 정확히 문제! 나는 이것을했다. –

관련 문제