Как использовать ListView из класса 1 в классе 2 в проекте Android? - PullRequest
0 голосов
/ 20 марта 2012

Я просматривал форумы по Android в Интернете, и именно здесь я нахожу наиболее точные и профессиональные ответы на вопросы, касающиеся Android.

Я изучаю программирование для Android и работаю над одним приложением. Я реализовал базу данных SQLite с возможностью чтения и записи, отображения данных в окнах редактирования и тому подобного, но я не могу реализовать ListView.

У меня есть пример с ListView, показывающий данные из базы данных. Мне удалось адаптировать это для отображения данных из моей базы данных, и она работает как отдельное приложение.

Мой вопрос: Как я могу добавить этот измененный пример к моей заявке?

Этот пример имеет класс:

public class DataListView extends ListActivity 

и использует другой класс для доступа к базе данных из моего приложения:

public class DatabaseManager extends SQLiteOpenHelper

Но мое собственное приложение имеет следующий класс:

public class MyWorkActivity extends Activity implements OnClickListener

Как я могу вызвать и использовать класс DataListView в моем собственном проекте?

Пожалуйста, помогите мне, потому что я работаю над этим ListView более недели без прогресса.

Это мой main.xml:

    <?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="@drawable/honeycomb2"
    android:shrinkColumns="*"
    android:stretchColumns="9" >

    <TableRow
        android:id="@+id/tableRow0"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center" >
    </TableRow>


    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:stretchColumns="6" >

        <TextView
            android:id="@+id/lblVrijemDolaska"
            android:layout_width="120dp"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/lblVrijemeDolaska"
            android:textSize="20sp" />
        <requestFocus />

        <TextView
            android:id="@+id/lblVrijemeOdlaska"
            android:layout_width="120dp"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/lblVrijemeOdlaska"
            android:textSize="20sp" />

    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center" >

        <TextView
            android:id="@+id/tvVrijemeDolaska"
            android:layout_width="70dp"
            android:layout_height="wrap_content"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:gravity="center"
            android:shadowColor="#00ccff"
            android:shadowDx="2"
            android:shadowRadius="2"
            android:text="Vr. dolaska"
            android:textSize="30sp" />

        <TextView
            android:id="@+id/tvVrijemeOdlaska"
            android:layout_width="70dp"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:shadowColor="#00ccff"
            android:shadowDx="2"
            android:shadowRadius="2"
            android:text="Vr. odlaska"
            android:textSize="30sp" />
    </TableRow>


    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center" > 

        <TextView
            android:id="@+id/lblDorucak3"
            android:layout_gravity="center"
            android:gravity="right"
            android:text="@string/lblDorucak3" />    

        <TextView
            android:id="@+id/lblPauza3"
            android:layout_gravity="center"
            android:gravity="right"
            android:text="@string/lblPauza3" />

    </TableRow>

<RelativeLayout
        android:id="@+id/RelativeLayout1"
        android:layout_width="35dp"
        android:layout_height="wrap_content"
        android:gravity="center" >

    <TableRow
            android:id="@+id/tableRow4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:stretchColumns="9"
            android:gravity="center" >

            <EditText
                android:id="@+id/txtDorucak3"
                android:gravity="center"
                android:layout_span="1"
                android:layout_width="60dp"
                android:inputType="number" />

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

            <EditText
                android:id="@+id/txtPauza3"
                android:layout_width="60dp"
                android:layout_span="1"
                android:gravity="center"
                android:inputType="number" />

        </TableRow>

    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/RelativeLayout2"
        android:layout_width="35dp"
        android:layout_height="wrap_content"
        android:gravity="center" >

        <Button
            android:id="@+id/btnDodaj"
            android:layout_width="75dp"
            android:layout_height="85dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_marginRight="61dp"
            android:background="@drawable/dodaj"
            android:scaleType="fitXY"
            android:text="@string/btnDodaj" />

        <Button
            android:id="@+id/btnIzbrisi"
            android:layout_width="75dp"
            android:layout_height="85dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="68dp"
            android:background="@drawable/izbrisi"
            android:scaleType="fitXY"
            android:text="@string/btnIzbrisi" />

    </RelativeLayout>

    <TableRow
        android:id="@+id/tableRow5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </TableRow>

    <ScrollView
        android:id="@+id/scrollViewDatabase"
        android:layout_width="fill_parent"
        android:layout_height="49dp" >

        <TextView
            android:id="@+id/tvZaBazu"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </ScrollView>

    <ListView
        android:id="@+id/lista"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="vertical"
        android:textSize="5sp" >

    </ListView>

</TableLayout>

И это пример ListView, который работает с моей базой данных как отдельным приложением, но не в моем проекте:

    import java.util.ArrayList;
import com.saigmn.DatabaseManager.DatabaseInfo;
import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;

public class DataListView extends ListActivity {

private ArrayList<String> results = new ArrayList<String>();
private SQLiteDatabase newDB;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    openAndQueryDatabase();

    displayResultList();


}
private void displayResultList() {
    //TextView tView = new TextView(this);
    //tView.setText("This data is retrieved from the database and only 4 " +
            //"of the results are displayed");
    //getListView().addHeaderView(tView);

    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));
    getListView().setTextFilterEnabled(true);

}
private void openAndQueryDatabase() {
    try {

        newDB = this.openOrCreateDatabase(DatabaseInfo.IME_BAZE, MODE_PRIVATE, null);
        Cursor c = newDB.rawQuery("SELECT * FROM " + DatabaseInfo.IME_TABELE, null);

        if (c !=null && c.getCount() > 0) {
                c.moveToFirst();
                int Column1 = c.getColumnIndex("datum");
                int Column2 = c.getColumnIndex("dolazak");
                int Column3 = c.getColumnIndex("odlazak");
                int Column4 = c.getColumnIndex("r_vrijeme");
                do {


                    String datum = c.getString(Column1);
                    String dolazak = c.getString(Column2);
                    String odlazak = c.getString(Column3);
                    String r_vrijeme = c.getString(Column4);
                    results.add(datum + " * " + dolazak + " * " + odlazak + " -> " + r_vrijeme);

                }while (c.moveToNext());

        }           
    } catch (SQLiteException se ) {
        Log.e(getClass().getSimpleName(), "Nije moguće kreirati ili otvoriti bazu");
    } finally {
        if (newDB != null) 
            //newDB.execSQL("DELETE FROM " + DatabaseInfo.IME_TABELE);
            newDB.close();
    }

}

}

1 Ответ

0 голосов
/ 20 марта 2012

Вы реализуете прослушиватель onClick в MyWorkActivity ... поэтому у вас есть интерактивные объекты ... при нажатии на одну из кнопок .. вы можете сделать так, чтобы представление списка отображалось на вашем экране .. в MyMorkActivity у вас есть эта часть ..

 button.SetOnClickListener(this);
OnclickListener(View v)
{
switch(v.getGetId());
{
  case R.id.x:<--- some button.. on clicking which listview should appear

Intent i=new Intent(MyWorkActivity.this,DataListView.class)
  startActivity(i);
   // by using these lines your application will display the datalistview activity you created..

}
 }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...