- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在抽屉导航中添加图片,我把它放在 drawable 文件夹中,大小为 48*48,我的字符串数组字符串数组在 string.xml 中,
我遵循了教程,但最后我所做的更改导致我的应用程序崩溃,我无法弄清楚问题是什么以及如何解决?
这是异常(exception)
01-23 19:32:41.277: E/AndroidRuntime(16889): java.lang.NullPointerException
01-23 19:32:41.277: E/AndroidRuntime(16889): at com.pKLabs.RgpvDigest.MyAdapter.getView(MainActivity.java:339)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.widget.AbsListView.obtainView(AbsListView.java:2733)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.widget.ListView.makeAndAddView(ListView.java:1811)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.widget.ListView.fillDown(ListView.java:697)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.widget.ListView.fillFromTop(ListView.java:763)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.widget.ListView.layoutChildren(ListView.java:1641)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.widget.AbsListView.onLayout(AbsListView.java:2546)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.View.layout(View.java:15664)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.ViewGroup.layout(ViewGroup.java:4869)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:914)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.View.layout(View.java:15664)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.ViewGroup.layout(ViewGroup.java:4869)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.View.layout(View.java:15664)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.ViewGroup.layout(ViewGroup.java:4869)
01-23 19:32:41.277: E/AndroidRuntime(16889): at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:429)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.View.layout(View.java:15664)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.ViewGroup.layout(ViewGroup.java:4869)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.View.layout(View.java:15664)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.ViewGroup.layout(ViewGroup.java:4869)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2246)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1968)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1200)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6401)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.Choreographer.doCallbacks(Choreographer.java:603)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.Choreographer.doFrame(Choreographer.java:573)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.os.Handler.handleCallback(Handler.java:733)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.os.Handler.dispatchMessage(Handler.java:95)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.os.Looper.loop(Looper.java:157)
01-23 19:32:41.277: E/AndroidRuntime(16889): at android.app.ActivityThread.main(ActivityThread.java:5335)
01-23 19:32:41.277: E/AndroidRuntime(16889): at java.lang.reflect.Method.invokeNative(Native Method)
01-23 19:32:41.277: E/AndroidRuntime(16889): at java.lang.reflect.Method.invoke(Method.java:515)
01-23 19:32:41.277: E/AndroidRuntime(16889): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
01-23 19:32:41.277: E/AndroidRuntime(16889): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
01-23 19:32:41.277: E/AndroidRuntime(16889): at dalvik.system.NativeStart.main(Native Method)
主 Activity
public class MainActivity extends ActionBarActivity implements
OnItemClickListener {
private DrawerLayout drawerLayout;
private ListView listView;
// private String[] navdra;
private ActionBarDrawerToggle drawerListner;
private MyAdapter myAdapter;
Intent shareintent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// navdra = getResources().getStringArray(R.array.navdra);
listView = (ListView) findViewById(R.id.drawerlist);
myAdapter = new MyAdapter(this);
// listView.setAdapter(new ArrayAdapter<String>(this,
// android.R.layout.simple_expandable_list_item_1, navdra));
listView.setAdapter(myAdapter);
listView.setOnItemClickListener(this);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerListner = new ActionBarDrawerToggle(this, drawerLayout,
R.drawable.ic_drawer, R.string.dopen, R.string.dclose);
/*
* @Override public void onDrawerOpened(View drawerView) {
* Toast.makeText(MainActivity.this, "Open", Toast.LENGTH_SHORT)
* .show(); }
*
* @Override public void onDrawerClosed(View drawerView) {
* Toast.makeText(MainActivity.this, "Close", Toast.LENGTH_SHORT)
* .show(); } }
*/
drawerLayout.setDrawerListener(drawerListner);
getSupportActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
Button csv = (Button) findViewById(R.id.cs);
csv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(), Semester.class);
startActivityForResult(intent, 0);
}
});
Button cal = (Button) findViewById(R.id.cal);
cal.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(), Calculator.class);
startActivityForResult(intent, 0);
}
});
Button iq = (Button) findViewById(R.id.interviewquestion);
iq.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(),
InterviewQuestion.class);
startActivityForResult(intent, 0);
}
});
Button cg = (Button) findViewById(R.id.program);
cg.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(v.getContext(), Programs.class);
startActivityForResult(intent, 0);
}
});
Button abt = (Button) findViewById(R.id.about);
abt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "PKlabs!!!",
Toast.LENGTH_SHORT).show();
// Intent intent = new Intent
// (v.getContext(),InterviewQuestion.class);
// startActivityForResult(intent,0);
}
});
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
drawerListner.onConfigurationChanged(newConfig);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onPostCreate(savedInstanceState);
drawerListner.syncState();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuItem item = menu.add("share"); // your desired title here
item.setIcon(R.drawable.share_icon); // your desired icon here
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
item.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
shareintent = new Intent(android.content.Intent.ACTION_SEND);
shareintent.setType("text/plain");
String shareBody = "Here is the share content body";
shareintent.putExtra(android.content.Intent.EXTRA_SUBJECT,
"Subject Here");
shareintent.putExtra(Intent.EXTRA_TEXT, "Hi there");
startActivity(Intent.createChooser(shareintent, "Share via"));
return true;
}
});
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
if (drawerListner.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
if (position == 0) {
Uri uri = Uri
.parse("https://2ce74af0d8de8783b91cdd315eeba0340a4b9277.googledrive.com/host/0B2sDUzNeIK0KODB0ZDRMVjFPaFE/Jobs.html");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
} else if (position == 1) {
Intent intent = new Intent(this, Careerguid.class);
startActivityForResult(intent, 0);
} else if (position == 2) {
Toast.makeText(this, "Coming Soon!!!", Toast.LENGTH_LONG).show();
}
// }
else if (position == 3) {
Uri uri = Uri.parse("http://www.google.com");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
else if (position == 4) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
final PackageManager pm = getPackageManager();
final List<ResolveInfo> matches = pm.queryIntentActivities(intent,
0);
ResolveInfo best = null;
for (final ResolveInfo info : matches)
if (info.activityInfo.packageName.endsWith(".gm")
|| info.activityInfo.name.toLowerCase().contains(
"gmail"))
best = info;
if (best != null)
intent.setClassName(best.activityInfo.packageName,
best.activityInfo.name);
intent.putExtra(Intent.EXTRA_EMAIL,
new String[] { "laboratorypk@gmail.com" });
intent.putExtra(Intent.EXTRA_SUBJECT, "Query/Feedback");
intent.putExtra(Intent.EXTRA_TEXT, "");
startActivity(Intent.createChooser(intent, ""));
}
if (position == 5) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
final PackageManager pm = getPackageManager();
final List<ResolveInfo> matches = pm.queryIntentActivities(intent,
0);
ResolveInfo best = null;
for (final ResolveInfo info : matches)
if (info.activityInfo.packageName.endsWith(".gm")
|| info.activityInfo.name.toLowerCase().contains(
"gmail"))
best = info;
if (best != null)
intent.setClassName(best.activityInfo.packageName,
best.activityInfo.name);
intent.putExtra(Intent.EXTRA_EMAIL,
new String[] { "laboratorypk@gmail.com" });
intent.putExtra(Intent.EXTRA_SUBJECT, "PC Games");
intent.putExtra(Intent.EXTRA_TEXT,
"Hey! I need PC Games pls share the List.");
startActivity(Intent.createChooser(intent, ""));
}
drawerLayout.closeDrawers();
selectItem(position);
}
public void selectItem(int position) {
// TODO Auto-generated method stub
listView.setItemChecked(position, true);
}
public void setTitle(String title) {
getSupportActionBar().setTitle(title);
}
private Toast toast;
private long lastBackPressTime = 0;
@Override
public void onBackPressed() {
if (this.lastBackPressTime < System.currentTimeMillis() - 4000) {
toast = Toast.makeText(this, "Press back again to exit",
Toast.LENGTH_LONG);
toast.show();
this.lastBackPressTime = System.currentTimeMillis();
drawerLayout.closeDrawers();
} else {
if (toast != null) {
toast.cancel();
}
super.onBackPressed();
}
}
}
class MyAdapter extends BaseAdapter {
private Context context;
String[] navlist;
int[] images = { R.drawable.job, R.drawable.career, R.drawable.project,
R.drawable.facebook, R.drawable.mail, R.drawable.games };
public MyAdapter(Context context) {
this.context = context;
navlist = context.getResources().getStringArray(R.array.navdra);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return navlist.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return navlist[position];
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = null;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.customrow, parent, false);
}
else {
row = convertView;
}
TextView titleTextView = (TextView) row.findViewById(R.id.textView11);
ImageView titleImageView = (ImageView) row
.findViewById(R.id.imageView1);
titleTextView.setText(navlist[position]);
titleImageView.setImageResource(images[position]);
return row;
}
}
customrow.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="wrap_content"
/>
<TextView
android:layout_margin="8dp"
android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="wrap_content"
android:gravity="center"
/>
</LinearLayout>
最佳答案
row为null,将inflate的返回值赋给row变量。
row = inflater.inflate(R.layout.customrow, parent, false);
关于android - 在 MyAdapter.getView 获取 Nullpointer,如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28111479/
我需要您在以下方面提供帮助。近一个月来,我一直在阅读有关任务和异步的内容。 我想尝试在一个简单的 wep api 项目中实现我新获得的知识。我有以下方法,并且它们都按预期工作: public Htt
我的可执行 jar 中有一个模板文件 (.xls)。不需要在运行时我需要为这个文件创建 100 多个副本(稍后将唯一地附加)。用于获取 jar 文件中的资源 (template.xls)。我正在使用
我在查看网站的模型代码时对原型(prototype)有疑问。我知道这对 Javascript 中的继承很有用。 在这个例子中... define([], function () { "use
影响我性能的前三项操作是: 获取滚动条 获取偏移高度 Ext.getStyle 为了解释我的应用程序中发生了什么:我有一个网格,其中有一列在每个单元格中呈现网格。当我几乎对网格的内容做任何事情时,它运
我正在使用以下函数来获取 URL 参数。 function gup(name, url) { name = name.replace(/[\[]/, '\\\[').replace(/[\]]/,
我最近一直在使用 sysctl 来做很多事情,现在我使用 HW_MACHINE_ARCH 变量。我正在使用以下代码。请注意,当我尝试获取其他变量 HW_MACHINE 时,此代码可以完美运行。我还认为
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关闭 9 年前。 要求提供代码的问题必须表现出对所解决问题的最低限度的理解。包括尝试过的解决方案、为什么
由于使用 main-bower-files 作为使用 Gulp 的编译任务的一部分,我无法使用 node_modules 中的 webpack 来require 模块code> dir 因为我会弄乱当
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我使用 Gridlayout 在一行中放置 4 个元素。首先,我有一个 JPanel,一切正常。对于行数变大并且我必须能够向下滚动的情况,我对其进行了一些更改。现在我的 JPanel 上添加了一个 J
由于以下原因,我想将 VolumeId 的值保存在变量中: #!/usr/bin/env python import boto3 import json import argparse import
我正在将 MSAL 版本 1.x 更新为 MSAL-browser 的 Angular 。所以我正在尝试从版本 1.x 迁移到 2.X.I 能够成功替换代码并且工作正常。但是我遇到了 acquireT
我知道有很多关于此的问题,例如 Getting daily averages with pandas和 How get monthly mean in pandas using groupby但我遇到
This is the query string that I am receiving in URL. Output url: /demo/analysis/test?startDate=Sat+
我正在尝试使用 javascript 中的以下代码访问 Geoserver 层 var gkvrtWmsSource =new ol.source.ImageWMS({ u
API 需要一个包含授权代码的 header 。这就是我到目前为止所拥有的: var fullUrl = 'https://api.ecobee.com/1/thermostat?json=\{"s
如何获取文件中的最后一个字符,如果是某个字符,则删除它而不将整个文件加载到内存中? 这就是我目前所拥有的。 using (var fileStream = new FileStream("file.t
我是这个社区的新手,想出了我的第一个问题。 我正在使用 JSP,我成功地创建了 JSP-Sites,它正在使用jsp:setParameter 和 jsp:getParameter 具有单个字符串。
在回答 StoreStore reordering happens when compiling C++ for x86 @Peter Cordes 写过 For Acquire/Release se
我有一个函数,我们将其命名为 X1,它返回变量 Y。该函数在操作 .on("focusout", X1) 中使用。如何获取变量Y?执行.on后X1的结果? 最佳答案 您可以更改 Y 的范围以使其位于函
我是一名优秀的程序员,十分优秀!