小编Mok*_*pps的帖子

在ArrayList中搜索某些字符串的自定义对象

我有一个带有自定义对象的ArrayList.我想在这个ArrayList中搜索字符串.

对象的类看起来像这样:

public class Datapoint implements Serializable {

  private String stateBased;
  private String name;
  private String priority;
  private String mainNumber;
  private String groupadress;
  private String dptID;

  public Datapoint(){
  }

  public String getMainNumber() {
    return mainNumber;
  }

  public void setMainNumber(String mainNumber) {
    this.mainNumber = mainNumber;
  }

  public String getName() {
    return name;
  }

  ..and so on
Run Code Online (Sandbox Code Playgroud)

我知道如何在ArrayList中搜索字符串但是如何使用我的自定义对象在ArrayList中执行此操作:

ArrayList<String> searchList = new ArrayList<String>();
String search = "a";
int searchListLength = searchList.size();
for (int i = 0; i < searchListLength; i++) {
if …
Run Code Online (Sandbox Code Playgroud)

java search arraylist custom-object

59
推荐指数
5
解决办法
21万
查看次数

以编程方式将属性AlignParentRight设置为RelativeLayout中的按钮不起作用?

我尝试以编程方式将属性AlignParentRight设置为RelativeLayout中的按钮,但程序崩溃时出现NullPointerException.这是我的代码:

//add horizontal realative layout
RelativeLayout layouth = new RelativeLayout(this);
layouth.setLayoutParams(new RelativeLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

//add textview for label
TextView t = new TextView(this);
t.setText(d.getName());
t.setTextSize(25);
t.setId(2);      
t.setLayoutParams(new RelativeLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

//add button
Button b = new Button(this);
b.setText(d.getName());
RelativeLayout.LayoutParams layoutParams =(RelativeLayout.LayoutParams)b.getLayoutParams();
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
layoutParams.addRule(RelativeLayout.LEFT_OF, 2);
b.setLayoutParams(layoutParams);   

//add textview and button to horizontal linear layout
layouth.addView(t);
layouth.addView(b);
//add horizontal linear layout to vertical linear layout
layoutv = (LinearLayout) findViewById(R.id.ProjectViewLinearID);
layoutv.addView(layouth);
Run Code Online (Sandbox Code Playgroud)

我的问题在哪里?该错误发生在程序行中layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

更新解决方案:

这段代码适合我:

// Creating a new RelativeLayout
RelativeLayout layouth = …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-button android-relativelayout

17
推荐指数
2
解决办法
3万
查看次数

在Android中显示ProgressBar一段时间

我必须在我的Android应用程序中等待几秒钟,我想在此期间显示进度条,我该怎么做?

我试过这个代码:

    public boolean WaitTask() {

        pDialog = ProgressDialog.show(context,null, "Lädt..",true);
        new Thread() {
        public void run() {
            try{
                // just doing some long operation
                sleep(2000);
             } catch (Exception e) {  }
             pDialog.dismiss();
             }
         }.start();
        return true;
   }
Run Code Online (Sandbox Code Playgroud)

但是进度条立即关闭而不等待两秒钟.我的问题在哪里?

进度条应该类似于Android开发者在站点中显示的活动圈.

更新 AsyncTask

private class WaitTime extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        mDialog.show();
    }
    protected void onPostExecute() {
        mDialog.dismiss();
    }

@Override
protected void onCancelled() {
    mDialog.dismiss();
    super.onCancelled();
}

    @Override
    protected Void doInBackground(Void... params) {
        long …
Run Code Online (Sandbox Code Playgroud)

android wait progress-bar

9
推荐指数
2
解决办法
3万
查看次数

无法使用Gradle分发'http://services.gradle.org/distributions/gradle-1.6-bin.zip'执行构建

如果构建项目,Android Studio中会出现错误:

Android Studio中的错误:

Gradle: Der Befehl "C:\Program" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':MyApplication:dexDebug'.
> Running C:\Users\Michael\AppData\Local\Android\android-studio\sdk\build-tools\android-4.2.2\dx.bat failed. See output

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Run Code Online (Sandbox Code Playgroud)

命令窗口中的输出gradlew compileDebug --stacktrace为:

The TaskContainer.add() method has been deprecated and is scheduled to be remove
d in Gradle …
Run Code Online (Sandbox Code Playgroud)

android android-studio build.gradle

6
推荐指数
1
解决办法
1万
查看次数

滚动时,Android"更平滑"隐藏工具栏

我在Android中的ListFragment中使用工具栏,可以在滚动期间隐藏/显示它.我implement AbsListView.OnScrollListener在里面使用这个代码:

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
                     int visibleItemCount, int totalItemCount) {
    // Leave this empty
}

/**
 * Method to detect if the scroll status changed
 *
 * @param listView
 * @param scrollState
 */
@Override
public void onScrollStateChanged(AbsListView listView, int scrollState) {
    if (!isTablet) {
        final int currentFirstVisibleItem = listView.getFirstVisiblePosition();

        if (currentFirstVisibleItem > mLastFirstVisibleItem) {
            ((ActionBarActivity) getActivity()).getSupportActionBar().hide();
        } else if (currentFirstVisibleItem < mLastFirstVisibleItem) {
            ((ActionBarActivity) getActivity()).getSupportActionBar().show();
        }
        mLastFirstVisibleItem = currentFirstVisibleItem;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样,当我向下滚动时隐藏工具栏,如果向上滚动则显示工具栏.但动画非常"难",我希望有一个更顺畅的过渡.它应该看起来像这样(没有标签,只有工具栏):https: …

android android-listview onscrolllistener material-design android-toolbar

6
推荐指数
1
解决办法
6148
查看次数

如何从程序添加按钮获取OnClick()?

我添加了一些带有以下行的按钮:

for (int i=0; i<XML.size(); i++) {
//add button
ToggleButton b = new ToggleButton(this); 
// Setting the parameters
lefttextv.setLayoutParams(lleft); 
b.setLayoutParams(bright);
//customize button
    b.setOnClickListener(this);
b.setId(id_button);
System.out.println(id_button);
b.setHeight(100);
b.setWidth(200);
// Adding to the RelativeLayout as a child
layouth.addView(lefttextv);
layouth.addView(b);
    id_button++;  
    }
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能获得OnClick()方法呢?我已经用这个方法实现了View.OnClickListener:

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId())
    {
    case id_button: Log.d("Button 0","Button 0 pressed);
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我如何获得Id?

android onclick button buttonclick onclicklistener

5
推荐指数
2
解决办法
2万
查看次数

尝试使用Calimero Java Library通过WiFi连接时出现"android.os.NetworkOnMainThreadException"

我正在使用一个使用开源Java库(Calimero)的Android应用程序.当我尝试通过WiFi连接到KNXnet/IP路由器时,我的代码会引发错误.

这里的问题代码:

private static KNXNetworkLinkIP connect(InetSocketAddress isaLocalEP, InetSocketAddress isaRemoteEP)
  {
    KNXNetworkLinkIP netLinkIp = null;

    int serviceMode = KNXNetworkLinkIP.TUNNEL; // tunnel to IP router
    boolean useNAT = true; // NAT not used for PC true or false , but needed for emulator = true
    KNXMediumSettings tpSettings = new TPSettings(true); // TP1 medium

    try
    {
      // Output the local end point address

      if (m_debugOutput == true)
      {
        System.out.println("..Tunneling, NAT ignored, TP1 medium");

        // Should be the PC's VPN address

        System.out.print("..Local  EP:");
        System.out.println(isaLocalEP.getHostName() …
Run Code Online (Sandbox Code Playgroud)

sockets networking android android-wifi networkonmainthread

5
推荐指数
2
解决办法
2万
查看次数

Android:使用带有自定义适配器的notifyDataSetChanged()的ListFragment刷新不起作用

我正在使用带有自定义列表适配器的ListFragment,我想通过单击ActionBar中的图标来刷新列表.不幸的是它不起作用,我不明白为什么.

我的ItemListFragment:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Log.d("debug","Hallo in ItemListFragment");

    //show ActionBar
    setHasOptionsMenu(true);

    //get reference to activity
    myApp = getActivity().getApplication();

    //check if intent from ItemListActivity is null
    Bundle be = getActivity().getIntent().getExtras();
    if (be == null){
        //if null read local feed
        feed = ReadFeed(fileName);
        Log.d("debug", "Lese Feed lokal :"+feed);
    }else{
        //else get extras from the intent
        feed = (RSSFeed) getActivity().getIntent().getExtras().get("feed");
        Log.d("debug", "Intent von ItemListActivity an ItemListFragment vorhanden");
    }

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) { …
Run Code Online (Sandbox Code Playgroud)

android listview android-fragments android-listfragment notifydatasetchanged

5
推荐指数
1
解决办法
1万
查看次数

Android:Fragment和ViewPager始终在第一个位置启动

我在Android应用程序中使用Master/Detail设计.如果我在ItemListActivity中单击列表视图中的项目,则会将位置提供给我的ItemDetailActivity.这个实现了ViewPager和FragmentStatePagerAdapter.所以我想在细节视图之间滑动.

我不知道如何告诉ViewPager从所需的位置开始(ItemListActivity中的整数).无论我在列表中点击哪一个,我的ViewPager始终位于列表的第0位.

这是我的代码:

ItemDetailActivity

public class ItemDetailActivity extends FragmentActivity {

    RSSFeed feed;
    int pos;
    private static List<Fragment> fragments;

    /**
     * The pager widget, which handles animation and allows swiping horizontally to access previous
     * and next wizard steps.
     */
    private ViewPager mPager;

    /**
     * The pager adapter, which provides the pages to the view pager widget.
     */
    private PagerAdapter mPagerAdapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // define layout of this activity
        setContentView(R.layout.activity_item_detail);

        // Get the feed object and …
Run Code Online (Sandbox Code Playgroud)

android listview android-fragments android-viewpager

4
推荐指数
1
解决办法
6140
查看次数

在Service类中显示ProgressDialog

我使用服务连接到使用AsyncTask的网络.我想显示ProgressDialog,直到应用程序连接到网络.但是我怎么能这样做呢?

我的服务看起来像这样:

package de.bertrandt.bertrandtknx;

import tuwien.auto.calimero.link.KNXNetworkLinkIP;
import tuwien.auto.calimero.process.ProcessCommunicator;
import de.bertrandt.bertrandtknx.Controls.OnOff;
import android.app.ProgressDialog;
import android.app.Service;
import android.content.Intent;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.AsyncTask;
import android.os.IBinder;
import android.widget.Toast;


public class ConnectionService  extends Service {

    public static KNXNetworkLinkIP m_netLinkIp = null;
    private static ProcessCommunicator m_pc = null;


    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
       //code to execute when the service is first created
        new Connect().execute();
    }

    @Override
    public void onDestroy() {
       //code to execute when the …
Run Code Online (Sandbox Code Playgroud)

android progressdialog android-service android-asynctask

3
推荐指数
1
解决办法
6241
查看次数