사용자가 EditText 상자에 검색 매개 변수를 입력하고 가장 가까운 대상을 쿼리 할 수있는 Android 매핑 앱에서 작업하고 있습니다. MapView에 핀으로 그려져있다.Android : 메인 활동 내에서 SlidingDrawer (또는 작은 목록)를 동적으로 채우기
핀을 클릭하면 위치 정보가 표시되지만 사용자에게 더 많은 정보를 제공하고 싶습니다. SlidingDrawer가 채워져 목적지/거리의 이름을 사용자에게 보여줄 수 있다고 생각했습니다.
많은 시간을 들여서 많은 책을 읽고 거의 진전되지 않은 지금 나는 지역 사회에 도움을 요청하고 있습니다.
내가 겪고있는 문제는 주 활동 내에서 SlidingDrawer의 내용을 채우는 방법을 알 수 없다는 것입니다. 새로운 액티비티를 시작할 수는 있지만 MapView가 화면에서 사라집니다. SlidingDrawer뿐만 아니라지도를 볼 수 있어야합니다. 그리고 SlidingDrawer를 Activity로 설정하지 않고 채우는 방법을 알아낼 수 없습니다.
(또한 대상 목록이 포함 된 SlidingDrawer 일 필요는 없습니다.) 레이아웃을 수정하여 작은 (최대 3 개 항목) 목록을 만들고지도의 일부를 제거 할 수 있습니다. 부동산은 쉽게 경우지만, 나도 그렇게하는 방법을 잘 모르겠어요) 여기
내 SlidingDrawer 호출하는 코드이다. 이것은 내 SlidingDrawer 클래스의 코드가 을 //call SlidingDrawer
Intent drawerIntent = new Intent(this, SlidingDrawerFinal.class);
drawerIntent.putExtra("lat", lat);
drawerIntent.putExtra("lon", lon);
int numberOfTargetsForList = numberOfLoops;
drawerIntent.putExtra("numberOfTargetsForList", numberOfTargetsForList);
for(int i = 0; i < target.length; i++){
drawerIntent.putExtra("target" + Integer.toString(i), target[i]);
}
this.startActivity(drawerIntent);
(extends Activity) : 서랍 안의 목록을 채우는 :
View inflatedDrawerLayout = getLayoutInflater().inflate(R.layout.drawer_main, null);
int width = getWindow().getAttributes().width;
int height = 300;
LayoutParams params = new LayoutParams(width, height);
getWindow().addContentView(inflatedDrawerLayout, params);
// add some data
ArrayList<MyData> myDataList = new ArrayList<MyData>();
myData = new MyData[numberOfTargets];
for(int i = 0; i < numberOfTargets; i++){
String lineTwo = "";
if(target[i].getRating().equals("Not Yet Rated")){
lineTwo = " " + target[i].getRating() + " " +
Double.toString((Math.round(target[i].getDistance()*100.0))/100.0) + " miles";
}
else{
lineTwo = " rating: " + target[i].getRating() + "/5 stars " +
Double.toString((Math.round(target[i].getDistance()*100.0))/100.0) + " miles";
}
String lineOne = (Integer.toString(i + 1) + ": " + target[i].getName() + ", " + target[i].getVicinity()) + "\n" + lineTwo;
myData[i] = new MyData(lineOne, i);
myDataList.add(myData[i]);
}
mListView = (ListView) findViewById(R.id.listview_);
mListView.setAdapter(new MyListAdapter(this, R.layout.drawer_row, myDataList));
drawer = (SlidingDrawer) findViewById(R.id.drawer);
handleButton = (Button) findViewById(R.id.handle);
drawer.animateOpen();
drawer.setOnDrawerOpenListener(new OnDrawerOpenListener() {
public void onDrawerOpened() {
handleButton.setBackgroundResource(R.drawable.handle_down_white);
}
});
개
내 레이아웃 파일 :
main.xml에 :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dip">
<EditText
android:id="@+id/geocode_input"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/placeName"
android:inputType="text"
android:lines="1" />
<Button
android:id="@+id/geocode_button"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/goLabel" />
</LinearLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<view android:id="@+id/mv"
class="com.google.android.maps.MapView"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:clickable="true"
android:apiKey="my_API_Key"/>
</LinearLayout>
<include layout="@layout/drawer_main"/>
</FrameLayout>
</LinearLayout>
하고, 마지막으로, drawer_main.xml이 너무 긴 것을
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<SlidingDrawer xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer"
android:handle="@+id/handle"
android:content="@+id/content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@null"
android:layout_gravity="bottom">
<LinearLayout
android:id="@id/content"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="14dip"
android:textStyle="bold|italic"
android:background="@android:color/white"
android:textColor="@android:color/black"
android:text="@string/top_search_results" >
</TextView>
<View
android:background="@android:drawable/divider_horizontal_bright"
android:layout_width="fill_parent"
android:layout_height="2dp" >
</View>
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/listview_"
android:background="@android:color/black"
android:textColor="@android:color/white"
android:divider="@android:color/transparent"
android:dividerHeight="2dp" >
</ListView>
</LinearLayout>
<Button
android:id="@id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/handle_down_white">
</Button>
</SlidingDrawer>
</FrameLayout>
죄송합니다. 어떤 도움이라도 대단히 감사하겠습니다.
누구든지 내 원래 질문에 대한 명확한 대답을 가지고 있다면, 나는 여전히 그것을 듣고 싶습니다. SlidingDrawer를 주요 활동 내에서 동적으로 채울 수 있습니까? – pjd