首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带MSSQL的安卓TableView

带MSSQL的安卓TableView
EN

Stack Overflow用户
提问于 2018-07-17 03:45:22
回答 1查看 204关注 0票数 0

我正忙于尝试获取从MSSQL获得的数组,以便在应用程序中以表视图的形式显示。我已经尝试谷歌它,但我似乎找不到一个这样的例子。我已经试过了,但我遇到了一个小错误。我得到以下错误Cannot resolve constructor:Simpletabledata adapter[package.mainactivity, package.itemarray]

下面是我的mainactivy.java类:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {
static String[] spaceProbeHeaders={"Name"};
private ArrayList<ClassListItems> itemArrayList;  //List items Array
private MyAppAdapter myAppAdapter; //Array Adapter
final TableView<String[]> tableView = (TableView<String[]>) findViewById(R.id.tableView);
private boolean success = false; // boolean

Connection conn; // Connection Class Initialization


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tableView.setHeaderBackgroundColor(Color.parseColor("#777777"));
    tableView.setHeaderAdapter(new SimpleTableHeaderAdapter(this,spaceProbeHeaders));
    tableView.setColumnCount(4);

    itemArrayList = new ArrayList<ClassListItems>(); // Arraylist Initialization

    // Calling Async Task
    SyncData orderData = new SyncData();
    orderData.execute("");
}

// Async Task has three overrided methods,
private class SyncData extends AsyncTask<String, String, String>
{
    String msg = "Internet/DB_Credentials/Windows_FireWall_TurnOn Error, See Android Monitor in the bottom For details!";
    ProgressDialog progress;

    @Override
    protected void onPreExecute() //Starts the progress dailog
    {
        progress = ProgressDialog.show(MainActivity.this, "Synchronising",
                "Tableview Loading! Please Wait...", true);
    }

    @Override
    protected String doInBackground(String... strings)  // Connect to the database, write query and add items to array list
    {
        try
        {
            ConnectionClass conStr=new ConnectionClass();
            conn =conStr.connectionclass();
            //Connection Object
            if (conn == null)
            {
                success = false;
            }
            else {
                // Change below query according to your own database.
                String query = "SELECT customer_first_name FROM cc_customer";
                Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery(query);
                if (rs != null) // if resultset not null, I add items to itemArraylist using class created
                {
                    while (rs.next())
                    {
                        try {
                            itemArrayList.add(new ClassListItems(rs.getString("customer_first_name")));
                        } catch (Exception ex) {
                            ex.printStackTrace();
                        }
                    }
                    msg = "Found";
                    success = true;
                } else {
                    msg = "No Data found!";
                    success = false;
                }
            }
        } catch (Exception e)
        {
            e.printStackTrace();
            Writer writer = new StringWriter();
            e.printStackTrace(new PrintWriter(writer));
            msg = writer.toString();
            success = false;
        }
        return msg;
    }

    @Override
    protected void onPostExecute(String msg) // disimissing progress dialoge, showing error and setting up my listview
    {
        progress.dismiss();
        Toast.makeText(MainActivity.this, msg + "", Toast.LENGTH_LONG).show();
        if (success == false)
        {
        }
        else {
            try {
                //myAppAdapter = new MyAppAdapter(itemArrayList, MainActivity.this);


                tableView.setDataAdapter(new SimpleTableDataAdapter(MainActivity.this,itemArrayList ));

            } catch (Exception ex)
            {

            }

        }
    }
}

下面是我的classlist.java文件:

代码语言:javascript
复制
    public class ClassListItems
{


    public String name; //Name

    public ClassListItems(String name)
    {

        this.name = name;
    }



    public String getName() {
        return name;
    }
EN

回答 1

Stack Overflow用户

发布于 2018-07-17 03:58:15

更新

注: OP正在使用SortableTableView Library

您需要导入以下内容来解算Cannot resolve constructor:SimpleTableDataAdapter

代码语言:javascript
复制
import de.codecrafters.tableview.toolkit.SimpleTableDataAdapter;

原创

你的项目中有SimpleTableDataAdapter类吗?它似乎找不到这个类,所以它不在同一个包中。如果在不同的包中,则需要导入。另外,您的.java文件名应该与类名匹配

另外,您有没有测试过itemArrayList实际上正在填充?对于Android-MSSQL,这里有一个教程指针-

https://parallelcodes.com/connect-android-to-ms-sql-database-2/

如果你在谷歌上搜索一下,有很多教程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51369119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档