当我尝试设置onClickListener时,应用程序崩溃

用户名

当我尝试在按钮上设置onClickListener(btOK)时,我需要帮助解决应用程序崩溃的问题。

这是我的MainActivity.java:

package edu.np.ece.mapg.newsweather;

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

import edu.np.ece.mapg.proj.fragments.TabsPagerAdapter;
import edu.np.ece.mapg.proj.rss.RssItem;
import edu.np.ece.mapg.proj.rss.RssReader;

public class MainActivity extends FragmentActivity {

ViewPager mViewPager;
TabsPagerAdapter mAdapter;
ActionBar mActionBar;
String[] tabStrings = {"Main", "News", "Weather"};
TextView tv;
Button btOK;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btOK = (Button)findViewById(R.id.btOK);
    tv = (TextView)findViewById(R.id.textView1);

    btOK.setOnClickListener(asd);

    //Initialize
    mViewPager = (ViewPager)findViewById(R.id.pager);
    mActionBar = getActionBar();
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager());  //Initialize the created adapter class

    mViewPager.setAdapter(mAdapter);
    mActionBar.setHomeButtonEnabled(false);
    mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    //Add tabs
    for(String tab_name : tabStrings){
        mActionBar.addTab(mActionBar.newTab().setText(tab_name).setTabListener(tabListener));
    }
    mViewPager.setOnPageChangeListener(pageListener);


    // MINI PROJ PHASE 2 //
    try{
        RssReader rssReader = new RssReader("http://news.google.com/news?pz=1&cf=all&ned=en_sg&hl=en&output=rss");
        ListView newsListView = (ListView)findViewById(R.id.newsListView);
        //Create list adapter
        ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(getBaseContext(), android.R.layout.simple_list_item_1, rssReader.getItems());
        //Set list adapter for listview
        newsListView.setAdapter(adapter);
        //Set listview item click listener
        newsListView.setOnItemClickListener((OnItemClickListener) new ListListener(rssReader.getItems(), this));
        adapter.notifyDataSetChanged();
    }
    catch(Exception e){
        Log.e("SimpleRssReader", e.getMessage());
    }
} 

View.OnClickListener asd = new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        tv.setText("OK");

    }
};

ViewPager.OnPageChangeListener pageListener = new ViewPager.OnPageChangeListener() {

    @Override
    public void onPageSelected(int position) {
        // On changing page, make respected tab selected
        mActionBar.setSelectedNavigationItem(position);
    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {};

    @Override
    public void onPageScrollStateChanged(int arg0) {};
};

ActionBar.TabListener tabListener = new ActionBar.TabListener() {

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        mViewPager.setCurrentItem(tab.getPosition());

    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub

    }
};

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />

news_fragment.xml,即我设置按钮的位置:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView" />

<Button
    android:id="@+id/btOK"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button" />

<ListView
    android:id="@+id/newsListView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

</LinearLayout>
拉贡南丹

你有

setContentView(R.layout.activity_main);

activity_main.xml 没有带有ID的按钮 btOK

news_fragment.xml有一个按钮。

因此,如果您在“活动”中初始化按钮,则会NullPointerException导致崩溃。

TextView和和相同ListView

findViewById 会在当前展开的布局中查找ID为的视图。

http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

java:为什么当我尝试重新启动线程时我的应用程序崩溃了?

当我尝试调试时应用程序崩溃

当我尝试加载数据库时,应用程序不断崩溃

当我尝试打开活动时,Android应用程序崩溃

当我将onClickListener添加到ImageView时,应用程序崩溃

当我尝试向其中添加图像按钮时,我的应用程序崩溃了

当我尝试更新onPostExecute(...)方法中的字段时,Android应用程序崩溃

当我尝试设置MapType时,MapFragment使应用程序在运行时崩溃

当我尝试设置clickListener时,应用崩溃

当我尝试运行此页面时,应用程序崩溃

当我尝试重新登录时,Android应用程序崩溃

当我移到某个片段时,应用程序崩溃

当我尝试将数据插入数据库时,应用程序崩溃

当我的android应用程序崩溃时获取通知

为什么当我尝试显示我的 ip usig Inet 时我的应用程序崩溃?

当我单击按钮时,Android 应用程序崩溃,onClickListener 出现问题

尝试设置我的地图视图时我的应用程序崩溃

当我回到 TableViewController 时应用程序崩溃

当我尝试更改 SnackBar TextView 应用程序崩溃的颜色时

当我点击注销时,我的应用程序崩溃

每当我添加 OnClickListener 或 Fragment 时,我的应用程序就会崩溃,这是我的 OnClickListener 代码

当我尝试访问当前位置时出现错误和应用程序崩溃

当我尝试打开 Fragment 时应用程序崩溃

当我尝试转到其他活动时,我的应用程序崩溃

当我尝试编辑 EditText 视图时应用程序崩溃

当我尝试解析字符串时,我的应用程序崩溃

当我尝试添加两个 editext 时,应用程序不断崩溃

当我尝试打开蓝牙时应用程序崩溃

当我将 onClickListener 放在 ImageView 上时它会崩溃我的应用程序