簡體   English   中英

時間表Android應用程式無法運作

[英]Timetable android application not working

我已經做了一個android應用程序,它得到成功編譯,沒有任何錯誤。 但是,當我在Android手機中運行應用程序時,它不會顯示所需的輸出。

這是我的MainActivity.java:

package wahab.com.timetabledemo;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.support.v7.widget.Toolbar;

public class MainActivity extends AppCompatActivity {

    private Toolbar toolbar;
    private ListView listView;


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

        setupUIViews();
        initToolbar();
    }

    private void setupUIViews(){
        toolbar = (Toolbar)findViewById(R.id.ToolbarMain);
        listView = (ListView)findViewById(R.id.lvMain);

    }

    private void initToolbar(){
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("TimeTable App");
    }


    private void setupListView(){
        String[] title = getResources().getStringArray(R.array.Main);
        String[] description = getResources().getStringArray(R.array.Description);

        SimpleAdaptor simpleAdaptor = new SimpleAdaptor(this, title, description);
        listView.setAdapter(simpleAdaptor);

    }

    public class SimpleAdaptor extends BaseAdapter{

        private Context mContext;
        private LayoutInflater layoutInflater;
        private TextView title, description;
        private String[] titleArray;
        private String[] descriptionArray;
        private ImageView imageView;

        public SimpleAdaptor(Context context, String[] title, String[] description){
            mContext = context;
            titleArray = title;
            descriptionArray = description;
            layoutInflater = LayoutInflater.from(context);
        }

        @Override
        public int getCount() {
            return titleArray.length;
        }

        @Override
        public Object getItem(int i) {
            return titleArray[i];
        }

        @Override
        public long getItemId(int i) {
            return i;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            if(view == null){
                view = layoutInflater.inflate(R.layout.main_activity_single_item,null);
            }

            title = (TextView)view.findViewById(R.id.tvMain);
            description = (TextView)view.findViewById(R.id.tvDescription);
            imageView = (ImageView)view.findViewById((R.id.ivMain));

            title.setText(titleArray[i]);
            description.setText(descriptionArray[i]);

            if(titleArray[i].equalsIgnoreCase("Timetable")){
                imageView.setImageResource(R.drawable.timetable);
            }
            else if(titleArray[i].equalsIgnoreCase("Subjects")){
                imageView.setImageResource(R.drawable.book);
            }
            else if(titleArray[i].equalsIgnoreCase("Faculty")){
                imageView.setImageResource(R.drawable.contact);
            }
            else{
                imageView.setImageResource(R.drawable.settings);
            }

            return view;
        }
    }
}

上面給出的是沒有錯誤的代碼。 這是我的activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:context="wahab.com.timetabledemo.MainActivity">

    <android.support.v7.widget.Toolbar
        android:id="@+id/ToolbarMain"
        android:layout_width="match_parent"
        android:layout_height="?android:attr/actionBarSize"
        android:background="@color/colorPrimary"
        app:titleTextColor="@color/white">

    </android.support.v7.widget.Toolbar>

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/lvMain"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:dividerHeight="10dp"
        android:layout_below="@+id/ToolbarMain"
        android:divider="@null">

    </ListView>

</RelativeLayout>

在我的activity_main.xml ,我使用了RelativeLayout,其中定義了工具欄和ListView。 定義了ListView,以便我可以添加不同的操作列表。

這是我的main_activity_single_item.xml:

<android.support.v7.widget.CardView android:layout_height="wrap_content"
android:layout_width="match_parent"
android:background="@color/colorAccent"
android:elevation="4dp"
xmlns:android="http://schemas.android.com/apk/res/android">

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageView
        android:layout_width="80dp"
        android:layout_height="105dp"
        android:id="@+id/ivMain"
        android:layout_marginLeft="10dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tvMain"
        android:textStyle="bold"
        android:text="Timetable"
        android:layout_marginTop="6dp"
        android:layout_marginLeft="6dp"
        android:layout_toRightOf="@+id/ivMain"
        android:textSize="25sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tvDescription"
        android:text="description"
        android:layout_marginLeft="6dp"
        android:layout_marginTop="3dp"
        android:layout_below="@+id/tvMain"
        android:layout_toRightOf="@+id/ivMain"
        android:textSize="16sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tvClick"
        android:textSize="12sp"
        android:text="click to know more"
        android:layout_marginTop="6dp"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/tvDescription"
        android:layout_alignBottom="@+id/ivMain"/>

</RelativeLayout>

在上面的xml文件中,我創建了一個CardView,它由一個ImageView和3個TextView組成,並使用RelativeLayout放置。

因此,我的代碼正在正確編譯,我的應用程序也正在運行,但未獲得所需的輸出。

看起來像這樣

您需要在onCreate調用setupListView()以顯示列表

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

    setupUIViews();
    initToolbar();
    setupListView(); // to display list
    ^^^^^^^^^^
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM