我对公用类有一点想法,但在使用时有些疑虑。
如果我在应用程序中使用公用类,那么在我的主 Activity 中使用该类时,我是否需要创建该类的对象,还是可以直接导入该类到主 Activity 中?
如果我的表述不够清晰,我很抱歉。
简而言之,我想要搞清楚的是,如何在我的主 Activity 中使用公用类?
谢谢, 大卫
这主要取决于你的实用工具类执行的操作。但是,大多数情况下,如果你创建一个实用工具类,你会希望创建静态方法并在不创建实例的情况下调用它们:
class MyUtilities{
public static String foo(String bar){
return bar.toUppercase;
}
}
然后,在您的活动上:
MyUtilities.foo("baz");
当然,有些情况下你可能需要创建一个实用工具类的实例。例如,如果你已经创建了一个全局适配器,它将被所有的 ListViews
使用。
final
并添加一个 private
构造函数。 - jt-gilkeson这很大程度上取决于您所指的实用程序类型。有以下几种:
1)实现静态方法的实用类。在这种情况下,您只需使用类名直接调用它们。
2)不是静态的实用类方法--需要创建并可能初始化该类的实例,然后使用该实例调用这些方法。
3)可以通过 Context
访问的实用程序类。然后,您可以调用 getApplicationContext() ,然后就可以get
访问实用程序类。
public final class Utils
{
private Utils()
{
}
public static void makeToast(Context context, String text){
Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
}
}
int i = Utility.RandInt();
Utility u = new Utility();
int i = u.randInt();
mc.getUtilityClass().SomeMethod()
我不知道你的确切问题是什么。但这里有一段代码,我在我的活动中使用了Utility类。AnimationUtil用于将动画加载到ImageView上。
ImageView waitImg = (ImageView) findViewById(R.id.ImageView02);
Animation waitAnim = AnimationUtils.loadAnimation(this, R.anim.wait_rotate);
waitImg.startAnimation(waitAnim);
waitAnim.cancel();
waitAnim.reset();
公共类 Utils {
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
public static void unlockScreenOrientation(Activity activity) {
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
public static void lockScreenOrientation(Activity activity) {
int currentOrientation = activity.getResources().getConfiguration().orientation;
if (currentOrientation == Configuration.ORIENTATION_PORTRAIT)
{
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
else
{
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
}
// Get Http Post response
@Nullable
public static String getHttpResponse(String url, List<NameValuePair> nameValuePairs) {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
UrlEncodedFormEntity entity;
try {
entity = new UrlEncodedFormEntity(nameValuePairs);
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
HttpEntity resEntity = response.getEntity();
String res = EntityUtils.toString(resEntity);
return res;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static void CopyStream(InputStream is, OutputStream os) {
final int buffer_size=1024;
try
{
byte[] bytes=new byte[buffer_size];
for(;;)
{
int count=is.read(bytes, 0, buffer_size);
if(count==-1)
break;
os.write(bytes, 0, count);
}
}
catch(Exception ex){}
}
public static JSONObject getJsonObjectFromXmlResponse(String xmlString) {
JSONObject objectJson = new JSONObject();
//JSONArray arrayJson = new JSONArray();
XmlPullParser parser = Xml.newPullParser();
try {
parser.setInput(new StringReader(xmlString));
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
String name;
switch (eventType) {
case XmlPullParser.START_TAG:
name = parser.getName();
if (name.equalsIgnoreCase("string")) {
String yourValue = parser.nextText();
//arrayJson = new JSONArray(yourValue);
objectJson = new JSONObject(yourValue);
}
break;
}
eventType = parser.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return objectJson;
}
}