Android Programming Environment and general approach



Download 87.2 Kb.
Date29.06.2017
Size87.2 Kb.
#21941
Android Programming

  • Environment and general approach

    • SDK download

    • Eclipse plug-in set up

    • Version selection

    • AVD

  • Project and “codebase”

    • Create an Android project

      • Proj, app, package name

    • Project “folders”





  • src: MainActivity.java



  • gen: R.java



  • Android 4.1/Dependencies
    libs





  • res: resources for UI



  • drawable



  • layout



  • menu



  • values



  • AndroidManifest.xml

Extends Activity; You may change

Generated by the tools; you may not change

Jars/libraries for the build

For libraries for DB access, etc






  • Activities and Intents

    • An activity is a window that contains UI of your application

      • An application may contain zero to many activities

      • An activity may be opened, hidden, or killed: as demonstrated by the Activity Lifecycle



  • Intent provides the navigation mechanism between applications

    • It can help connect your activities in the same application, or

    • It can let your activity to call built-in applications such as Browser and Map.

Demo: App Navigation

AndroidManifest.xml




Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at


http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

-->

android:versionName="1"

xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.android.appnavigation">


android:label="@string/app_nav_home_label">












android:label="@string/simple_up_label"

android:parentActivityName=".app.AppNavHomeActivity">









android:value=".app.AppNavHomeActivity" />




android:label="@string/peer_label"

android:parentActivityName=".app.AppNavHomeActivity">









android:value=".app.AppNavHomeActivity" />




android:label="@string/view_from_other_task_label"

android:parentActivityName=".app.AppNavHomeActivity">









android:value=".app.AppNavHomeActivity" />




android:label="@string/outside_task_label"

android:theme="@style/Theme.Light"

android:taskAffinity="com.example.android.appnavigation.outsidetask">












android:label="@string/content_view_label"

android:parentActivityName=".app.ContentCategoryActivity">













android:value=".app.ContentCategoryActivity" />




android:label="@string/content_category_label"

android:parentActivityName=".app.AppNavHomeActivity">









android:value=".app.AppNavHomeActivity" />




android:label="@string/notifications_label"

android:parentActivityName=".app.AppNavHomeActivity">









android:value=".app.AppNavHomeActivity" />




android:label="@string/interstitial_label"

android:theme="@style/Theme.Dialog"

android:launchMode="singleTask"

android:excludeFromRecents="true"

android:taskAffinity="">















AppNavHomeActivity.java

/*

* Copyright (C) 2012 The Android Open Source Project



*

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* http://www.apache.org/licenses/LICENSE-2.0



*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/
package com.example.android.appnavigation.app;
import android.annotation.TargetApi;

import android.app.ListActivity;

import android.content.Intent;

import android.content.pm.PackageManager;

import android.content.pm.ResolveInfo;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ListView;

import android.widget.TextView;
import java.util.ArrayList;

import java.util.List;


/**

* Home activity for app navigation code samples.

*/

public class AppNavHomeActivity extends ListActivity {



@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setListAdapter(new SampleAdapter(querySampleActivities()));

}
@Override

protected void onListItemClick(ListView lv, View v, int pos, long id) {

SampleInfo info = (SampleInfo) getListAdapter().getItem(pos);

startActivity(info.intent);

}
@TargetApi(4)

protected List querySampleActivities() {

Intent intent = new Intent(Intent.ACTION_MAIN, null);

intent.setPackage(getPackageName());

intent.addCategory(Intent.CATEGORY_SAMPLE_CODE);


PackageManager pm = getPackageManager();

List infos = pm.queryIntentActivities(intent, 0);


ArrayList samples = new ArrayList();
final int count = infos.size();

for (int i = 0; i < count; i++) {

final ResolveInfo info = infos.get(i);

final CharSequence labelSeq = info.loadLabel(pm);

String label = labelSeq != null ? labelSeq.toString() : info.activityInfo.name;
Intent target = new Intent();

target.setClassName(info.activityInfo.applicationInfo.packageName,

info.activityInfo.name);

SampleInfo sample = new SampleInfo(label, target);

samples.add(sample);

}
return samples;

}
static class SampleInfo {

String name;

Intent intent;
SampleInfo(String name, Intent intent) {

this.name = name;

this.intent = intent;

}

}


class SampleAdapter extends BaseAdapter {

private List mItems;


public SampleAdapter(List items) {

mItems = items;

}
//@Override

public int getCount() {

return mItems.size();

}
//@Override

public Object getItem(int position) {

return mItems.get(position);

}
//@Override

public long getItemId(int position) {

return position;

}
//@Override

public View getView(int position, View convertView, ViewGroup parent) {

if (convertView == null) {

convertView = getLayoutInflater().inflate(android.R.layout.simple_list_item_1,

parent, false);

convertView.setTag(convertView.findViewById(android.R.id.text1));

}

TextView tv = (TextView) convertView.getTag();



tv.setText(mItems.get(position).name);

return convertView;

}
}

}

SimpleUpActivity.java



/*

* Copyright (C) 2012 The Android Open Source Project

*

* Licensed under the Apache License, Version 2.0 (the "License");



* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* http://www.apache.org/licenses/LICENSE-2.0



*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/
package com.example.android.appnavigation.app;
import com.example.android.appnavigation.R;
import android.app.Activity;

import android.os.Bundle;


public class SimpleUpActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.simple_up);

}

}



Simple_up.xml




Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at


http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

-->


android:layout_width="match_parent"

android:layout_height="match_parent"

android:text="@string/simple_up_description"

android:padding="16dp" />

PeerActivity.java

/*

* Copyright (C) 2012 The Android Open Source Project



*

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* http://www.apache.org/licenses/LICENSE-2.0



*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/
package com.example.android.appnavigation.app;
import com.example.android.appnavigation.R;
import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.TextView;
public class PeerActivity extends Activity {

private static final String EXTRA_PEER_COUNT =

"com.example.android.appnavigation.EXTRA_PEER_COUNT";
private int mPeerCount;
@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.peer);


mPeerCount = getIntent().getIntExtra(EXTRA_PEER_COUNT, 0) + 1;

TextView tv = (TextView) findViewById(R.id.peer_counter);

tv.setText(getResources().getText(R.string.peer_count).toString() + mPeerCount);

}
public void onLaunchPeer(View v) {

Intent target = new Intent(this, PeerActivity.class);

target.putExtra(EXTRA_PEER_COUNT, mPeerCount);

startActivity(target);

}

}



peer.xml



Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at


http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

-->

android:layout_width="match_parent"

android:layout_height="match_parent"

android:padding="16dp"

android:orientation="vertical">



android:layout_height="wrap_content"

android:text="@string/peer_description" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="8dp"

android:text="@string/peer_count" />



Download 87.2 Kb.

Share with your friends:




The database is protected by copyright ©ininet.org 2024
send message

    Main page